Swift4.0复习Optional

1.Optional基本使用:

当我们声明一个Optional对象时,无论该对象是在文件作用域还是在函数体内作为局部对象声明,如果不对它初始化,那么它的值默认为空(nil)。

// 声明a为Int类型的option类型对象
var a: Int? = 100
// 类型为Int?,初始化为nil
var b: Int? = nil

2.Optional链:

3.Optional的强制拆解:

4.Optional绑定:

5.空结合操作符:

var a = Int?(0)
let b = 0

// 这里的a ?? b表达式
var c = a ?? b

// 相当于
c = a != nil ? a! : b

6.隐式拆解的Optional类型:

// 这里声明了一个隐式拆解的Optional变量a
var a: Int! = 10
 
// 这里b的类型为Int?
let b = a
 
// 这里输出:b = Optional(10)
print("b = \(String(describing: b))")
 
// 当隐式拆解的Optional对象作为复合赋值操作符的左值时,
// 仍然需要使用 ! 或 ? optional-chaining操作符
a! += 20
a? += 5
 
// 这里声明了一个隐式拆解的Optional数组变量arr
var arr: [Int]! = [1, 2, 3]
 
// 这里对arr使用 ! 操作符,
// 使得 arr! 表达式作为 += 的左操作数
// 这里的 ! 不能缺省
arr! += [4, 5, 6]

使用场景:

“将某个图像视图控件作为某个视图控制器类的实例属性。
但是在声明它的时候由于不知道当前视图控制器的实际尺寸,也不知道所用的图像,
因此无法对它进行初始化,而只有等到调用 viewDidLoad方法之后才能对它初始化。
那么这个时候,该图像视图对象就可以声明为隐式拆解的Optional类型,后续对它成员的访问就不需要显式样使用optional-chaining操作符了,代码也能更简洁一些。” 摘录来自: “大话Swift 4.0”。 iBooks.

  

 

转载于:https://www.cnblogs.com/pengsi/p/8488701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值