Swift

Swift KeyPath

Swift 中可以使用 KeyPath 来获取属性值,语法为\Type.property.property…..。

// 官方给出的示例:
class Animal: NSObject {
    @objc var name: String
    
    init(name: String) {
        self.name = name
    }
}

let llama = Animal(name: "Llama")
let nameAccessor = \Animal.name
let nameCountAccessor = \Animal.name.count
 
llama[keyPath: nameAccessor]
// "Llama"
llama[keyPath: nameCountAccessor]

\Animal.name 是一个KeyPath,通过 subscript 来获取 Animal 实例的 name 属性值。