类型检查与转换-创新互联

一、使用as操作符

创新互联建站是一家专业提供郁南企业网站建设,专注与做网站、成都网站制作、html5、小程序制作等业务。10年已为郁南众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

       并不是所有的类型都可以互相转换

   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基本类型

           

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


本文标题:类型检查与转换-创新互联
转载来于:http://pwwzsj.com/article/ccidod.html