温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

类型检查与转换

发布时间:2020-07-12 18:18:48 来源:网络 阅读:371 作者:hehemmm 栏目:开发技术


一、使用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基本类型


            

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI