1.从派生类转化为基类,向上转型
|
|
2.消除二意性,数值类型转化
|
|
3.switch语句进行模式匹配
|
|
4.0 as! 向下转型使用,强制转换类型,转换失败,会曝错误
|
|
5.0 as? 转化成功返回可选值类型,需要拆包使用,转化失败,返回nil
由于as?在转换失败也不会报错,如不能百分百确保转换成功,使用as?,能确定成功,可以使用as!123456let animal: Animal = Cat()if let cat = animal as? Cat { print("cat is not nil")} else { print("cat is nil")}