Swift在Xcode 6.3中发生了很大的变化.我不得不在我的每个应用程序中替换几十个地方as- > as!.为什么,现在的规则是什么?
在Swift 1.2之前,as运算符可用于执行两种不同类型的转换,具体取决于要转换的表达式的类型以及转换为的类型:
保证将一种类型的值转换为另一种类型,其成功可由Swift编译器验证.例如,向上转换(即,从类转换为其超类之一)或指定文字表达式的类型(例如,1作为Float).
强制将一个值转换为另一个值,Swift编译器无法保证其安全性,并且可能导致运行时陷阱.例如,向下转换,从类转换为其子类之一.
Swift 1.2将保证转换和强制转换的概念分为两个不同的运算符.保证转换仍然由as操作员执行,但强制转换现在使用as!操作员.这!意味着转换可能会失败.通过这种方式,您可以快速了解哪些转换可能导致程序崩溃.
资料来源:https://developer.apple.com/swift/blog/?id = 23
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |