" as"之间有什么区别?和" as!" swift中的关键字?

时间:2015-08-01 18:27:39

标签: swift

在swift 2.0之前的早些时候,我们正在使用" as"类型转换的关键字,但现在告诉我将其转换为" as!"在某些地方为什么?

1 个答案:

答案 0 :(得分:3)

在Swift 1.2中进行了更改

来自Swift Blog

  

as!运营商

     

在Swift 1.2之前,可以使用as运算符   进行两种不同的转换,具体取决于类型   正在转换的表达式以及它被转换为的类型:

     

保证将一种类型的价值转换为另一种类型,其成功   可以通过Swift编译器进行验证。例如,向上转播(即   从类转换为其超类之一)或指定   文字表达的类型(例如,1 as Float)。强制转换   一个值到另一个,Swift无法保证其安全性   编译器,可能会导致运行时陷阱。例如,向下转型,   从类转换为其子类之一。 Swift 1.2分离   保证转换和强制转换为两个的概念   不同的运营商保证转换仍然使用   as运算符,但强制转换现在使用as!运算符。 !是。{   意味着转换可能会失败。这样,你就知道了   一目了然哪些转换可能导致程序崩溃。

     

注意表达式后缀运算符!?以及转换运算符as!as?

之间的类比