ios - 我无法理解结果为什么要添加斜线?如何删除它?
问题描述
我对以下扩展有疑问。
该扩展将任何可选值转换为字符串。像 long、Int、Float 和可选字符串。
当我尝试转换文本时
“不包含”
它自动添加的可选值
\
在单引号中。
我得到结果
不包含
extension Optional where Wrapped == AnyObject{
func toString() -> String{
if let value = self{
return "\(value)"
}
return ""
}
}
这是 playGround 示例。
如何删除结果中的“\”。
解决方案
当您调用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!)" : ""
}
}
推荐阅读
- c# - Xero oAuth 2 授权
- sql-server - 为什么 SSMS 像保留字一样突出显示“SELF”这个词?
- javascript - 打字稿:定义对象键值的返回
- github - 分叉的存储库会从被阻止的 github 用户中删除吗?
- haskell - 用haskell中的选定字符拆分字符串
- c - 使用 malloc 和 calloc 创建二维数组
- node.js - Node.js websockets 客户端-服务器数据包
- scala - 如何对猫进行平面映射
- c++ - typename c++ 和编译顺序
- python - Django 设置 DigitalOchean Postgre "DATABASES = {" ERORR