13-可选链

2023-04-10  本文已影响0人  二斤寂寞

可选链(Optional Chaining)

class Car { var price = 0 } 
class Dog { var weight = 0 } 
class Person { 
    var name: String = ""
    var dog: Dog = Dog()
    var car: Car? = Car()
    func age() -> Int { 18 }
    func eat() { print("Person eat") } 
    subscript(index: Int) -> Int { index }                                              
}
var person: Person? = Person() 
var age1 = person!.age() // Int 
var age2 = person?.age() // Int? 
var name = person?.name // String? 
var index = person?[6] // Int?
func getName() -> String { "jack" } 
// 如果person是nil,不会调用getName() 
person?.name = getName()                 
if let _ = person?.eat() { // ()? 
    print("eat调用成功")                                              
} else { 
    print("eat调用失败")                                              
} 
var dog = person?.dog // Dog?
var weight = person?.dog.weight // Int? var price = person?.car?.price // Int? 

可选链

var scores = ["Jack": [86, 82, 84], "Rose": [79, 94, 81]]
scores["Jack"]?[0] = 100
scores["Rose"]?[2] += 10
scores["Kate"]?[0] = 88
var num1: Int? = 5
num1? = 10 // Optional(10)
var num2: Int? = nil
num2? = 10 // nil
var dict: [String : (Int, Int) -> Int] = [
    "sum" : (+),
    "difference" : (-)
]
var result = dict["sum"]?(10, 20) // Optional(30), Int?
上一篇 下一篇

猜你喜欢

热点阅读