Swift 5.8 现在能有效的打印 AnyKeyPath 路径了

这算是一个 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

总结

你看,舒服多了、有用多了吧 : )

  本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
  · 如若转载,请注明出处:https://www.codeun.com/archives/1153.html ·

(0)
上一篇 2023-08-21
下一篇 2023-08-22

发表回复

登录后才能评论