Optional Chaining 可选链接

使用 Optional Chaining 可以让我们拜托很多不惜要的判断和取值,但是使用的时候需要小心。

classToy {

let name :String

init(name:String) {

self.name= name

}

func play(){

print("plya:\(self.name)")

}

}

class Pet {

var toy :Toy?

}

class Child {

var pet :Pet?

}

let xiaoming =Child()

let toyName =xiaoming.pet?.toy?.name

//需要改进为

//使用guard守护

guard lettoyName1 =xiaoming.pet?.toy?.name

else{

// ...

// return

}

// guard后,toyName1就由可选类型变为必选类型了

print(toyName1)

xiaoming.pet?.toy?.play()

//需要改进为

if let result =xiaoming.pet?.toy?.play() {

// ...

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容