我对以下扩展名有疑问。
该扩展名会将所有可选值转换为字符串。像long,Int,Float和可选字符串一样。
当我尝试转换
之类的文本时“不包含”
自动添加的可选值
\
用单引号引起来。
我得到结果
不包含
extension Optional where Wrapped == AnyObject{
func toString() -> String{
if let value = self{
return "\(value)"
}
return ""
}
}
这是playGround示例。
如何在结果中删除该“ \”。
答案 0 :(得分:-1)
当您在可选的description
上调用String
方法时,将显示\,这是将字符串传递给print
时隐式发生的情况。只是为了说明字符串中有一个文字',并且'不是分隔符。
如果我使用
extension Optional {
func toString() -> String{
if let value = self{
return "\(value)"
}
return ""
}
}
let x: String? = "doesn't contain"
print(x.toString())
它给了我
不包含
没有\
我可能会将其编码为计算变量
extension Optional {
var stringValue: String {
return self != nil ? "\(self!)" : ""
}
}