美文网首页
Swift语法 -- [13 - 可选链]

Swift语法 -- [13 - 可选链]

作者: happy神悦 | 来源:发表于2020-10-27 09:51 被阅读0次

    可选链是一个调用和查询可选属性、方法和下标的过程,它可能为 nil 。如果可选项包含值,属性、方法或者下标的调用成功;如果可选项是 nil ,属性、方法或者下标的调用会返回 nil 。多个查询可以链接在一起,如果链中任何一个节点是 nil ,那么整个链就会得体地失败。

    
    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 {
            return 18
    
        }
        func eat() {
            print("Person eat")
        }
        subscript(index: Int) -> Int {
            return 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 { return "jack" }
    // 如果person是nil,不会调用getName()
    person?.name = getName()
    
    
    • 如果可选项为nil,调用方法、下标、属性失败,结果为nil
    • 如果可选项不为nil,调用方法、下标、属性成功,结果会被包装成可选项
      • 如果结果本来就是可选项,不会进行再次包装
    var dog = person?.dog // Dog?
    var weight = person?.dog.weight // Int? 
    var price = person?.car?.price // Int?
    
    
    • 多个?可以链接在一起
      • 如果链中任何一个节点是nil,那么整个链就会调用失败

    相关文章

      网友评论

          本文标题:Swift语法 -- [13 - 可选链]

          本文链接:https://www.haomeiwen.com/subject/vsdzpktx.html