swift 可选链

可选链式调用是一种可以在当前值可能为 nil 的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会成功;如果可选值是 nil,那么调用将返回 nil。多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为 nil,整个调用链都会失败,即返回 nil

定义可选链:

        var residence: Residence?

? 与 ! 区别:

        通过在想调用的属性、方法,或下标的可选值后面放一个问号(?),可以定义一个可选链。这一点很像在可选值后面放一个叹号(!)来强制解包它的值。它们的主要区别在于当可选值为空时可选链式调用只会调用失败,然而强制解包将会触发运行时错误。

class Residence {
    // 普通变量
    var rooms: [Room] = []
     // 计算属性
    var numberOfRooms: Int {
        return rooms.count
    }
//下标
    subscript(i: Int) -> Room {
        get {
            return rooms[i]
        }
        set {
            rooms[i] = newValue
        }
    }
    func printNumberOfRooms() {
        print("The number of rooms is \(numberOfRooms)")
    }
//可选链
    var address: Address?
}

可选链一般可用于和if等判断条件流程结合使用

猜你喜欢

转载自blog.csdn.net/qq_31319235/article/details/120504172