程序员iOS Developerswift

if语句和optional

2015-12-15  本文已影响328人  Hollylord

因为当这个if和optional一起用的时候,很容易混淆,这里题主好好做一个详细的解释。

强制解包

在可选类型的后面加个感叹号!,就可以把可选类型的值取出来,赋值给具体类型
下面的写法是正确的

var num :Int? =10
var numValue :Int =num!
// 将num中的值取出来,赋值给numValue

感叹号!的意思是告诉编译器:我确定可选类型里面有值,可以将值取出来了。当然啦,如果为nil,就崩溃咯。

隐式解包

被声明为隐式解包的可选类型不用进行强制解包能够自动解包:自动把可选类型的值取出来赋给具体类型

var num :Int! =20
var numValue :Int =num // 自动解包,不用再使用! 进行强制解包
// num是被声明为隐式解包的可选类型Int!

选择绑定

if let num ="156".toInt() {
    println("num的值存在,是\(num)")
} else {
   println("num的值不存在")
}

如果"156".toInt()的值存在
就把值赋给临时常量num,执行第1 ~ 3行的大括号之间的代码
如果"156".toInt()的值不存在
就不创建临时常量num,执行第3 ~ 5行的大括号之间的代码
注意:
这里的num是Int类型,不是Int?类型
num的作用域是第13行的大括号之间,不能用在第35行的大括号之间

上一篇 下一篇

猜你喜欢

热点阅读