溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

類型檢查與轉(zhuǎn)換

發(fā)布時(shí)間:2020-07-12 18:18:48 來(lái)源:網(wǎng)絡(luò) 閱讀:374 作者:hehemmm 欄目:開(kāi)發(fā)技術(shù)


一、使用as操作符

        并不是所有的類型都可以互相轉(zhuǎn)換


    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 //強(qiáng)制類型轉(zhuǎn)換

    }

    創(chuàng)建了3個(gè)實(shí)例p1,p2,p3,類型都是Person,p1是Student實(shí)例,p2是Worker實(shí)例,p3是Person實(shí)例,p1和p2都聲明為Person類,而實(shí)例是由Person子類型實(shí)例化


        對(duì)象            Person類型            Worker類型            Student類型           說(shuō)明

        p1                        支持                    不支持                        支持             類型Person,實(shí)例:Student

        p2                    支持                            支持                        不支持

        p3                        支持                    不支持                        不支持

        


        let p1 as? Worker ----在強(qiáng)制類型轉(zhuǎn)換時(shí),as加問(wèn)號(hào)表示如果不能進(jìn)行類型轉(zhuǎn)換,則賦值于nil空值


二、使用is操作符

        

        is 操作符可以判斷一個(gè)實(shí)例是否是某個(gè)類的類型,如果實(shí)例是目標(biāo)類型,結(jié)果返回true,否則為false



三、使用Any和AnyObject類型


            在swift中,提供了2種類型表示不確定類型:AnyObject和Any,AnyObject表示任何任何類的類型,而Any可以表示任何類型,包括類和其他類型,也包括Int和Double基本類型


            

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI