Swift 为什么访问CustomStringConvertible’;不鼓励别人的描述?
对于Swift 为什么访问CustomStringConvertible’;不鼓励别人的描述?,swift,string,optional,customstringconvertible,Swift,String,Optional,Customstringconvertible,对于CustomStringConvertible来说: 不鼓励直接访问类型的说明属性[…] 为什么? 下面是一个使用description对我来说很有用的例子。否则我怎么能得到同样的结果呢 func dontPrintNil(_ s: String?) { if s == nil { print("placeholder") } else { print(s!) } } let s: String? = nil dontPrintNi
CustomStringConvertible
来说:
不鼓励直接访问类型的说明
属性[…]
为什么?
下面是一个使用
description
对我来说很有用的例子。否则我怎么能得到同样的结果呢
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
我读了以下内容:“String(实例)
将适用于任何类型的实例
,如果实例
恰好是CustomStringConvertible
,则返回其说明
。因此,不鼓励将CustomStringConvertible
用作一般约束,或直接访问符合条件的说明
。”(强调我的。)我看不出第一句话是如何暗示第二句的。文档是否假设我们总是希望转换成字符串成功?