swift菜鸟教程1-5(语法,变量,类型,常量,字面量)

一个朴实无华的目录

今日学习内容:

1.基本语法

引入


空格规范

输入输出


2.变量

声明变量

变量输出加反斜杠括号 \( )

3.可选(Optionals)类型

可选类型

在这两种情况下,变量 optionalInteger 都是可选整数类型。注意,在类型和 ?之间没有空格。

Optional 是一个含有两种情况的枚举,None 和 Some(T),用来表示可能有或可能没有值。任何类型都可以明确声明为(或者隐式转换)可选类型。当声明一个可选类型的时候,要确保用括号给 ? 操作符一个合适的范围。例如,声明可选整数数组,应该写成 (Int[])? 写成 Int[]? 会报错。

当你声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。

可选项遵照 LogicValue 协议,因此可以出现在布尔环境中。在这种情况下,如果可选类型T?包含类型为T的任何值(也就是说它的值是 Optional.Some(T) ),这个可选类型等于 true,反之为 false。

强制解析

当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   print(myString)
}else{
   print("myString 值为 nil")
}

以上程序执行结果为:

swift 复制代码
Optional("Hello, Swift!")

print( myString! )加感叹号后

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

if myString != nil {
   // 强制解析
   print( myString! )
}else{
   print("myString 值为 nil")
}

以上程序执行结果为:

swift 复制代码
Hello, Swift!

使用!来强制解析值之前,一定要确定可选包含一个非nil的值。

可选绑定

如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量

swift 复制代码
import Cocoa

var myString:String?

myString = "Hello, Swift!"

if let yourString = myString {
   print("你的字符串值为 - \(yourString)")
}else{
   print("你的字符串没有值")
}

以上程序执行结果为:

swift 复制代码
你的字符串值为 - Hello, Swift!

4.常量

常量声明

swift 复制代码
import Cocoa

let constA = 42
print(constA)

常量命名

swift 复制代码
import Cocoa

let _const = "Hello, Swift!"
print(_const)

let 你好 = "你好世界"
print(你好)

5.字面量

整数 and 浮点数 实例

swift 复制代码
let decimalInteger = 17           // 17 - 十进制表示
let binaryInteger = 0b10001       // 17 - 二进制表示
let octalInteger = 0o21           // 17 - 八进制表示
let hexadecimalInteger = 0x11     // 17 - 十六进制表示

let decimalDouble = 12.1875       //十进制浮点型字面量
let exponentDouble = 1.21875e1    //十进制浮点型字面量
let hexadecimalDouble = 0xC.3p0   //十六进制浮点型字面量

字符串 实例

swift 复制代码
import Cocoa

let stringL = "Hello\tWorld\n\n菜鸟教程官网:\'http://www.runoob.com\'"
print(stringL)

以上程序执行结果为:

swift 复制代码
Hello    World

菜鸟教程官网:'http://www.runoob.com'
相关推荐
YMWM_3 分钟前
print(f“{s!r}“)解释
开发语言·r语言
愤豆7 分钟前
05-Java语言核心-语法特性--模块化系统详解
java·开发语言·python
bksczm8 分钟前
文件流(fstream)
java·开发语言
NGC_66119 分钟前
Java 线程池阻塞队列与拒绝策略
java·开发语言
小碗羊肉21 分钟前
【从零开始学Java | 第二十二篇】List集合
java·开发语言
m0_7167652322 分钟前
C++提高编程--STL常用容器(set/multiset、map/multimap容器)详解
java·开发语言·c++·经验分享·学习·青少年编程·visual studio
froginwe111 小时前
Bootstrap4 折叠组件使用指南
开发语言
sunwenjian8861 小时前
SpringBean的生命周期
java·开发语言
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 基于Java的游泳馆会员管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
郝学胜-神的一滴2 小时前
【技术实战】500G单行大文件读取难题破解!生成器+自定义函数最优方案解析
开发语言·python·程序人生·面试