浮点型转换为整型
舍去浮点数的小数部分即可。
类型别名
根据程序上下文,你想要使用一个更为贴切的名称来引用某个类型的变量,此时你可以为那个类型定义一个类型别名。
类型别名使用 typealias 关键字来定义。
比如当描述一个外部资源的大小的时候,可以如下定义别名:
typealias AudioSample = UInt16
定义了类型别名之后,你可以使用别名来代替原来的类型名:
// AudioSample 是 UInt16 的别名,所以 AudioSample.min 就是 UInt16.min。maxAmplitudeFound 当前值为0。
var maxAmplitudeFound = AudioSample.min
元组
元组将多个值组合成一个复合值。元组里面的值可以是任意类型(包括元组),他们互相之间也不需要属于同一类型。
// (404,"Not Found") 描述了一个 HTTP状态码,表示你请求的网页不存在。
let http404Error = (404,"Not Found")
// 此时,http404Error 的类型是 (Int,String),值是 (404,"Not Found")
你可以将元组里面的值分解为单独的常量或者变量来使用他们。
let (statusCode,statusMessage) = http404Error
print("The status code is \(statusCode)")
print("The status message is \(statueMessage)")
// 执行结果: The status code is 404
The status message is Not Found
如果你只需要使用元组中的某些值,在你分解元组的时候可以使用下划线来忽略这些变量的名称。
let (justTheStatusCode,_) = http404Error
print("The statusCode is \(justTheStatusCode)")
// 执行结果:The statusCode is 404
也可以使用索引值来使用元组中的变量。索引值从0开始,从左至右一次增加。
print("The statusCode is \(http404Error.0)")
print("The statusMessage is \(http404Error.1)")
// 执行结果: The status code is 404
The status message is Not Found
还可以在定义元组时候,给元组的值命名,然后你就可以通过这些名字来使用对应的值。
let http200Status = (statusCode: 200,description: "OK")
print("The statusCode is \(http200Status.statusCode)")
print("The statusMessage is \(http200Status.description)")
// 执行结果: The status code is 200
The status message is OK
元组非常适合用作方法的返回值。一个访问网页的方法,可以返回一个元组来描述网页的状态。返回一个包含两个不同类型的值的元组相较于只能返回一个单一的值来说,可以提供更多信息。
元组多用于表示一组暂时存在的相关的值,不适合用来创建复杂的数据结构。如果某个数据结构需要长期存在,最好为之创建一个类或者结构体,而不是使用元组。