var optionalString:String? = "Hello"optionalString!.append(" World!")
请注意第二行上的感叹号.
但是当在可选值上使用可选的类型转换 *** 作符(作为?)时,不需要打开可选项,我们只提供可选的本身,它只是神奇地工作.
let sneakyString:Any? = "Hello!"let notSoSneakyString = sneakyString as? String
注意第二行上没有感叹号.
如果我们拼出它,魔术会更明显:
let sneakyString:Any? = Optional("Hello")let notSoSneakyString = sneakyString as? String
它不是我们试图转换的字符串,而是带有字符串作为关联值的枚举.
我希望我必须这样做:
let sneakyString:Any? = "Hello!"let notSoSneakyString = sneakyString! as? String
请注意第二行上的感叹号.
类型转换 *** 作符是否以相同的方式作用于期权和非期权?
解决方法 作为?如果可能的话,运算符进行转换,并返回转换对象或nil.它也处理nil值,所以如果sneakyString为nil,你将无法将它转换为String并且转换将失败.相同的行为,如果它是非零但不能转换为String.换句话说,你不需要!因为?自动处理nil值.
总结以上是内存溢出为你收集整理的swift – 键入强制转换可选值全部内容,希望文章能够帮你解决swift – 键入强制转换可选值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)