元组
· 元组可以将任意数据类型组装成一个元素
· 元组在作为函数返回值的时候特别适用,可以为函数返回更多的信息。
//元组的创建1
let (x,y) = (1,2) //定义一个简单的元组
print("x is \(x) and y is \(y)")
//元组的创建2
let http404Error = (404,"Not Found") //定义一个有Int和String组成的元组
print(http404Error)
//元组的创建3
let http200StatusCode = (statusCode : 200, desc : "OK")
print(http200StatusCode)
print(http200StatusCode.statusCode) //如何访问
//访问元组的值1
let (statusCode,statusMessage) = http404Error //采用类似Dictionary的方式,通过key去拿到值
print("statusCode is \(statusCode) and statusMessage is \(statusMessage)")
//访问元组的值2
//如果仅需要元组中个别的值,可以使用“_”的方式来忽略不需要的值
let (justTheStatusCode,_) = http404Error
print("justTheStatusCode is \(justTheStatusCode)")
//访问元组的值3, 使用序号
print("statusCode is \(http404Error.0)")
Optional可选类型
· 可选类型:这个值要么存在,并且等于x;要么根本不存在。
· (变量名\常量名 : 类型?)
var possibleNumber : Int? = 123 //存在,并且值为123
possibleNumber = nil //不存在,赋值为nil表示不存在
·swift 中的nil不是指针,代表的是特定类型的值不存在
·swift 里面nil 不能用于非可选类型
如果代码中的常量或者变量需要适配值不存在的情况,务必将它声明为恰当的可选类型
如果定义的可选类型的对象不提供默认值,那么该对象将自动设为nil
//var strValue = nil //错误
var strValue: Float?
let hashValue = strValue?.hashValue //问号的意思是询问可选量是否响应后面这个方法
print(hashValue)
总结 :? 的使用场景
1. 声明Optional值变量
2. 用在Optional值操作中,用来判断是否响应后面的操作