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
进行显式的转换。