首页 > 代码库 > Swift中as as! as?的区别
Swift中as as! as?的区别
as :类型一致或者子类
仅当一个值的类型在运行时(runtime)和as模式右边的指定类型一致 - 或者是该类型的子类 - 的情况下,才会匹配这个值。如果匹配成功,被匹配的值的类型被转换成as
模式左边指定的模式。
class Animal {} class Dog: Animal {} let d = Dog() d as Animal
as! 父类强转子类
class Animal {} class Dog: Animal {} let a: Animal = Dog() a as! Dog
不加!编译会报错
as? 转换失败返回nil
class Animal {} class Dog: Animal {} class Cat: Animal {} let animal: Animal = Cat() animal as! Dog animal as? Dog
animal as! Dog 编译会报错 as?就是对的
Swift中as as! as?的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。