Swift--可选类型
2019-02-20 本文已影响4人
GitCode8
在java中,一个基本类型在没有赋值的情况下,系统会为自动为其分配默认值,而一个引用的默认值则是null。而null通知情况下会造成空指针异常,导致奔溃。
在Swift,为了避免这种恶劣的情况,提供了可选类型(optional
),用来表示值可能存在,可能缺省。这样在撸代码的时候,会提醒程序员注意。
var resultCode: Int? = 404
// resultCode包含一个可选的 Int 值 404
resultCode= nil
// resultCode现在不包含值
在类型后面带?表示该变量或者常量是可选类型,要么存在对应类型的值,要么是nil
声明一个可选常量或者变量但是没有赋值,它们会自动被设置为 nil
resultCode:Int?
用if来判断是否值,在有值得情况下,使用!最为后缀来强制使用。
if resultCode != nil {
print("resultCode has an integer value of \(resultCode!).")
}
在编码为了简洁,用可选绑定,简洁代码
if let result= Int(resultCode ) {
print("\(resultCode )' has an integer value of \(result)")
} else {
print("\(resultCode )' could not be converted to an integer")
}
在resultCode
有值得情况会走if
分支,并值赋值给result
,可在改分支使用。如果没有值,则走else
分支。
另外一种情况,可选类型赋值后会一直有值,如果每次使用都需要判断或者解析,代码量非常繁琐和无聊,所以可以在变量或者常量声明时带上!后缀。
resultCode:Int!