国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > [Swift]Day12:类型转换

[Swift]Day12:类型转换

来源:程序员人生   发布时间:2015-01-17 10:20:23 阅读次数:3050次

类型转换

类型判断

我们可以通过 is 来判断1个实例是不是属于指定类或其子类,功能类似以 OC 中的 isKindOfClass 。

我们通过1个简单的例子演示1下:

class A { } class B: A { } class C: A { } var array = [B(),A(),C(),A()] // [A] for item in array { if item is B { println("B") // 1 time } if item is C { println("C") // 1 time } if item is A { // ERROR! ALWAYS TRUE println("C") // 1 time } }

向下转型

可以用类型转换操作符 as 尝试将某个实例转换到它的子类型。转换没有真的改变实例或它的值。潜伏的根本的实例保持不变;只是简单地把它作为它被转换成的类来使用。

比以下面这段代码:

class A { } class B: A { } class C: A { } var array = [B(),A(),C(),A()] // [A] for item in array { if let aB = item as? B { println("aB") // 1 time } if let aC = item as? C { println("aC") // 1 time } }

Any 和 AnyObject

Swift为不肯定类型提供了两种特殊类型别名:

  • Any 可以表示任何类型,除方法类型(function types)。
  • AnyObject 可以代表任何class类型的实例。

References

  • TypeCasting
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生