【Swift学习】Swift编程之旅(三)
元组(tuples)
tuples是将多个单一的值组合为一个复合的值。它可以包含任何类型的值,而不需要都是相同类型。
一.元组的创建
1。
let http404error = (404,"NOT FOUND!")
let (statusCode, statusMessage) = http404error
print("The status code is \(statusCode),the status message is \(statusMessage)")
2.
let httpError = (statusCode:404,statusMessage:"Not Found!")
输出结果
二.元组数据的访问
1.statusCode,statusMessage就像字典中的key一样,我们可以通过它们来访问元祖的元素。
2.还可以使用下标来访问
三.元组元素的忽略
有时候并不是需要所有的元素,我们可以通过_下划线来忽略不需要的元素。
let http404error = (404,"NOT FOUND!")
let (statusCode, _) = http404error
print("The status code is \(statusCode)")
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个(Int, String)元组来来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。
可选(Optional)
使用可选optional来处理一些值缺失的情况。
There is a value, and it equals x有一个等于X的值
or或者
There isn’t a value at all没有值
注意:
在C 和 Objective-C 语言中并没有可选这个概念。最接近的 Objective-C 特征是,一个方法要不返回一个对象要不返回nil,nil表示“缺少一个有效的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型并不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失,Swift 的可选可以让你暗示任意类型的值缺失。
如果一个类型可选那么就在类型后加?即表示可选如Int?
下面我们通过一个简单的例子来学习一下可选
let possibleNumber = "12345"
let number = Int(possibleNumber)
print(number)
输出结果
let possibleNumber = "Hello,how are you?"
let number = Int(possibleNumber)
print(number)
输出结果
你将一个毫无价值的可选变量设置为nil
if 语句以及强制解析
你可以使用if语句来判断一个可选是否包含值。如果可选有值,结果是true;如果没有值,结果是false。
当你确定可选包确实含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个感叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced unwrapping):