swift-as解析

类型检查

1、is

is操作符可以判断一个实例是否是某个类的类型,如果是目标类型,结果返回true。 运用场景,类的多态性,判断一个父类实例的真正类型是不是子类类型。

类型转换:对象类型转换一定发生在继承的前提下

2、as 向上转换

仅仅应用于向上转换(子类类型转换为父类类型 - upcast少见), 比如
(Student子类 -> Person父类)
let p1 : Student = Student(xx,xx,xx)
let p11: Person = p1 as Person // as Person可以省略

3、as!向下转换 拆包

在类型转换过程中对可选值进行拆包,转换结果是非可选类型:
将非可选类型转换为非可选类型
将可选类型转换为非可选类型

--转换过程中,不能转换为目标类型的 会出现运行时错误。如果可选类型为nil转换为非可选类型也是会报错

4、as?向下转换 不拆包

在类型转换过程中不进行拆包,转换的结果是可选类型:
将非可选类型转换为可选类型
将可选类型转换为可选类型

--转换过程中,不能转换为目标类型的 不会出现运行时错误,结果是nil。如果可选类型为nil转换为可选类型也不会报错,转换之后的值也为nil。

你可能感兴趣的:(swift-as解析)