swift – 键入强制转换可选值

swift – 键入强制转换可选值,第1张

概述每当我们需要在 swift中使用可选值进行 *** 作时,我们需要打开它来 *** 作,而不是在可选项上,而是在“可选内部”的值上. var optionalString:String? = "Hello"optionalString!.append(" World!") 请注意第二行上的感叹号. 但是当在可选值上使用可选的类型转换 *** 作符(作为?)时,不需要打开可选项,我们只提供可选的本身,它只是神奇地工作. 每当我们需要在 swift中使用可选值进行 *** 作时,我们需要打开它来 *** 作,而不是在可选项上,而是在“可选内部”的值上.

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 – 键入强制转换可选值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1015835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存