类型检查与转换
一、使用as操作符
并不是所有的类型都可以互相转换
let p1:Person = Student(name:"tom",age:20,school:"test")
let p2:Person = Worker(name:"jerry",age:30,school:"test")
let p3:Person = Person(name:"harry",age:35)
if p1 is Student{
let s1 = p1 as Student //强制类型转换
}
创建了3个实例p1,p2,p3,类型都是Person,p1是Student实例,p2是Worker实例,p3是Person实例,p1和p2都声明为Person类,而实例是由Person子类型实例化
对象Person类型Worker类型Student类型 说明
p1支持不支持支持类型Person,实例:Student
p2支持支持不支持
p3支持不支持不支持
let p1 as? Worker ----在强制类型转换时,as加问号表示如果不能进行类型转换,则赋值于nil空值
二、使用is操作符
is 操作符可以判断一个实例是否是某个类的类型,如果实例是目标类型,结果返回true,否则为false
三、使用Any和AnyObject类型
在swift中,提供了2种类型表示不确定类型:AnyObject和Any,AnyObject表示任何任何类的类型,而Any可以表示任何类型,包括类和其他类型,也包括Int和Double基本类型
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。