苹果的文档说CustomStringConvertible
:
不鼓励直接访问类型的
description
属性 […]。
为什么?
下面是一个示例,其中 usingdescription
对我来说似乎很有用。否则我将如何获得相同的结果?
func dontPrintNil(_ s: String?) {
if s == nil {
print("placeholder")
} else {
print(s!)
}
}
let s: String? = nil
dontPrintNil(s) // → placeholder
dontPrintNil(s?.description) // → placeholder
dontPrintNil(String(describing: s)) // → nil
dontPrintNil("\(s)") // → nil