这算是一个 Swift 5.8
非常实用的一个更新点了,在 Swift 5.8
之前,如果你要实用 print()
或者 po
命令打印属性路径,它是会直接输出类的引用信息,这样的打印毫无作用,看不出任何关键信息。
以前的示例
struct User {
let name: String
let phone: String
var address: String
}
print(\User.name)
// 输出 Swift.KeyPath<ModuleName.User, Swift.String>
print(\User.phone)
// 输出 Swift.KeyPath<ModuleName.User, Swift.String>
print(\User.address)
// 输出 Swift.WritableKeyPath<ModuleName.User, Swift.String>
Swift 5.8
[SE-0369] 更新内容使打印AnyKeyPath
符合 CustomDebugStringConvertible
协议,输出有效的路劲信息。
Swift 5.8 版本后的示例
struct User {
let name: String
let phone: String
var address: String
}
print(\User.name)
// 输出 \User.name
print(\User.phone)
// 输出 \User.phone
print(\User.address)
// 输出 \User.address
总结
你看,舒服多了、有用多了吧 : )