swift-可选值
swift的nil和OC有些不一样,OC只有对象可以用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift可以没有初始值的,产生了可选值Optional。
定义可选值很容易,只需在类型的后面加一个?就行。例如:var value:Int?
一个Optional值和一个非Optional值的区别,Optional值未经初始化虽然为nil,但普通变量连nil的没有。
var value:Int?
print(value) //nil
var value:Int
print(value) //直接报错
提取可选类型的值(强制解析)
Optional值不能被直接使用,因为可选值有两种状态,分别是有值和没值,所以我们需要告诉编译器是否有值
强制解析可选类型的值,只需在变量后加!就可以。
var value:Float?
var value2:Float = value!
print(value2)
注意:如果value没有值,会报运行时错误。
当我不知道 Optional是否有值,该怎么操作?
如果值不为nil,再执行后面的代码。
var value:Int? = 10
if let tmpValue = value {
print(tmpValue)
// var result :Int = value!
//
// var result2 :Int = value!
//
// print(value)
//
// print(result)
}
当你不确定可选值是否有值是,尽量使用if来判断一下
let url = NSURL(string: "www.baidu.com")
if let tmpUrl = url {
NSURLRequest(URL: tmpUrl)
}
可选项:??,他可以对nil进行快速判断,??后面的值是参与计算的
var num:Int?
let result :Int = num ?? 0
print(result)
![](https://images.cnblogs.com/cnblogs_com/mq0036/508398/o_12.png)
您的资助是我最大的动力!
金额随意,欢迎来赏!