Swift文档Chapter 18 类型转换
类型转换可以判断实例的类型。
如果将多个具有同一个父类的实例初始化成一个数组,那么数组的类型将会被推断为[father's type],数组每一个元素也都是父类类型,即使他们是使用子类声明的。
类型检查
类型检查操作符is关键字可以检查一个实例是否属于特定的子类型。如果属于,那么返回true,否则返回false。
类型转换
我们使用类型转换符as?或者as!进行向下转换。
as?:如果可以转换成功,那么返回转换结果;如果不可以转换成功,那么返回nil;as!:会进行强制的解包,当转换一个不正确的类型的时候,会触发运行时错误。
类型转换没有改变类型的值,根本的实例保持不变。
Any和AnyObject的实例转换
Any表示任何类型,包括函数类型;AnyObject表示任何类型的实例。
Any数组可以混合不同的数据类型一起工作。
Any中数组可以包含可选类型。Swift在使用Any表示可选类型的时候,会弹出警告。如果想使用Any承载可选值,可以使用as Any进行显式的转换。