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() {

// ...

}

你可能感兴趣的:(Optional Chaining 可选链接)