属性别名(可以说是 Identifiable 最优雅的解决方案)

Rom*_*man 1 protocols swift

如果我想遵守协议并且协议定义了我不喜欢的属性名称怎么办?
例如:

struct Currency: Identifiable {
    let id: String
    let rate: Double
}
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,为“id”属性提供一个更有意义的名称会很棒。所以我希望能够做这样的事情:

struct Currency: Identifiable {
    propertyalias iso = id
    let iso: String
    let rate: Double
}
Run Code Online (Sandbox Code Playgroud)

Dáv*_*tor 8

没有“属性别名”这样的东西。

但是,您可以将该属性包装在您可以根据需要命名的计算属性中。

struct Currency: Identifiable {
    let iso: String
    let rate: Double

    var id: String { 
        iso
    }
}
Run Code Online (Sandbox Code Playgroud)