您好,登錄后才能下訂單哦!
一、使用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基本類型
免責(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)容。