类型安全和类型推断 --> 在编译的时候进行类型检查;
数值型字面量 2(0b) 8(0o) 10(无前缀) 16(0x)
17
0b10001 // 二进制的17
0o21 // 八进制的17
0x11 // 十六进制的17
- 指数 (三者等同)整数和浮点数都可以添加额外的零并且包含下划线,并不会影响字面量:
12.1_8_7_5
1.21875e1 //10的一次方
0xC.3p0
let integerPi = Int(3.1415) //强制截断
元祖(多个值组合成一个复合值)
let http404Error = (404,"Not Found")
let (justTheStatusCode, _) = http404Error//忽略参数可以用 _
let (aInt,aString) = http404Error
print("the first item is \(http404Error)")
数据类型转化
let number = "123"
let numToStr = Int(number)
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
// pi 等于 3.14159,所以被推测为 Double 类型
类型别名
typealias AudioSample = UInt16
var maxAmplitudeFound = AudioSample.min
// maxAmplitudeFound 现在是 0
可选类型
var serverCode: Int? = 404 //包含一个可选的 Int 值 404
serverCode = nil //现在不包含值
//在 Objective-C 中,nil 是一个指向不存在对象的指针。
//在 Swift 中,nil 不是指针——它是一个确定的值,用来表示值缺失。
//任何类型的可选状态都可以被设置为nil,不只是对象类型。
可选绑定
//是指 判断可选类型是否 fistNumber 有值,如果有将值赋给临时常量或者变量
if let firstNumber = Int("4"), let secondNumber = Int("42"), firstNumber < secondNumber && secondNumber < 100{
//只要 有一个为 nil 或者 false ,则整体为 false 等同于 &&
}
隐式解析可选类型
//当 第一次通过可选类型 判断有值时,之后无需再次判断, 故之后的判断改为 隐式解析可选类型
let possibleString: String? = "An optional string."
let forcedString: String = possibleString! // 需要惊叹号来获取值
let assumedString: String! = "An implicitly unwrapped optional string."
let implicitString: String = assumedString // 不需要感叹号