1 常量和变量
常量的值一旦设定就不能改变,通过let来声明常量,如:
let age = 0
通过var来声明变量,如:
var name = "swift"
2 类型标注
在声明常量或者变量的时候可以加上类型标注(type annotation),说明常量或者变量重要存储的值的类型。
let age: Int = 0
var name: String = "swift"
3 常量和变量的命名
swift可以让你使用任何你喜欢的字符作为常量和变量名,包括Unicode字符:
let π: Double = 3.14159
let 你好: String = "hello"
注:常量与变量名不能包含数学符号,箭头,保留的(或者非法的)Unicode 码位,连线与制表符。也不能以数字开头,但是可以在常量与变量名的其他地方包含数字。
4 类型安全和类型推断
swift是一个类型安全(typ safe)的语言。类型安全的语言可以让你清楚地知道代码要处理的值的类型。如果你的代码需要一个String,你绝对不可能不小心传进去一个Int。
5 数值型字面量
整数字面量:
十进制数,没有前缀 let decimalInteger = 16
二进制数,前缀0b let binaryInteger = 0b10000
八进制数, 前缀0o let OctalInteger = 0o20
十六进制数,前缀0x let hexadecimalInteger = 0x10
6 类型转换
整型与整型转换
let ageUInt: UInt = 8
let ageInt: Int = Int(ageUInt)
整数与浮点数的转换
let weightInt: Int = 65
let weightDouble: Double = Double(weightInt)
7 类型转换
类型别名 (type aliases)就是给现有类型定义另一个名字。
typealias Integer8 = Int8
let height: Integer8 = 100
8 类型转换
siwft布尔类型(Boolean),叫做Bool。布尔值指的的逻辑上的值,只存在真假
let IamYourFather = true
let IamYourMother = true
9 元组(tuples)
把多个值组合成一个值。元组内的只可以是任何类型
let http404Error: (Int, String) = (404, "Not Found")
// 通过下标来访问元祖中的单个元素
print("StatusCode: \(http404Error.0)")
// 定义元组的时候给元组的单个元素命名,如果只需要一部分元组值,可以使用_代替
let http200 = (statusCode: 200, statusMessage: "OK")
print("statusCode: \(http200.statusCode) statusMessage: \(http200.statusMessage)")
let http500: (statusCode: Int, _: String) = (500, "内部服务器错误")
9 可选类型(optionals)
可选类型用来处理值可能缺失的情况。
有值,等于某个特定的值
没有值
10 可选绑定
使用可选绑定(optional binding)来判断可选类型是否包含之,如果包含值就把值赋给一个变量或者常量。可选绑定可以用在 if 和 while 语句中。
let string: String = "12"
if let integerValur = Int(string) {
print("有值")
}
11 使用断言进行调试
断言会在运行时判断一个逻辑条件是否为 true ,如果为 true 程序会继续执行,如果为 false,代码执行结束,应用将被终止。
let age = -1
assert(age > 0, "Age must bigger than zero")