Swift文档Chapter 18 类型转换


类型转换可以判断实例的类型。
如果将多个具有同一个父类的实例初始化成一个数组,那么数组的类型将会被推断为[father's type],数组每一个元素也都是父类类型,即使他们是使用子类声明的。

类型检查

类型检查操作符is关键字可以检查一个实例是否属于特定的子类型。如果属于,那么返回true,否则返回false

类型转换

我们使用类型转换符as?或者as!进行向下转换。

  • as?:如果可以转换成功,那么返回转换结果;如果不可以转换成功,那么返回nil
  • as!:会进行强制的解包,当转换一个不正确的类型的时候,会触发运行时错误。

类型转换没有改变类型的值,根本的实例保持不变。

AnyAnyObject的实例转换

  • Any表示任何类型,包括函数类型;
  • AnyObject表示任何类型的实例。

Any数组可以混合不同的数据类型一起工作。

Any中数组可以包含可选类型。Swift在使用Any表示可选类型的时候,会弹出警告。如果想使用Any承载可选值,可以使用as Any进行显式的转换。