[swift]为什么不是可能要追加的字符串!通过 + = 运算符?

标签: UITextView ios Swift
发布时间: 2015/6/18 4:36:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

正如标题所说我试图将文本追加到一个隐式打开的可选字符串,通过 += 运算符它给了我

'String!' is not identical to 'UInt8'

让你明白我的意思:

var myString: String = "Hello "
myString += "world" // works great

var myOptionalString: String! = "Foo "
myOptionalString += " bar" // error: String! is not identical to 'UInt8'

然而如果就转让时它追加了它工作

var myOptionalString: String! = "Foo "
myOptionalString = myOptionalString + " bar" // works great

谁能告诉我原因,还是察觉在件?

更新

mySecondOpString: String? = "Hello "
mySecondOpString! += "world" // works great too

解决方法 1:

字符串!是隐式打开可选的类型,它是类型的可选的特殊情况。

正如你可能知道字符串!是不相同的字符串。所以,当你写:

var myOptionalString: String! = "Foo "
myOptionalString += " bar" // error: String! is not identical to 'UInt8'

它将尝试查找字符串与 + = 运算符!它不可能,因此错误。

如果您显式打开它 (你能说然后它违背目的) 作品:

 myOptionalString! += " bar"
官方微信
官方QQ群
31647020