小白第一次寫文章,望大神們多指點(diǎn)指點(diǎn)述召!
因?yàn)樽约菏褂眠^JAVA的反射機(jī)制,因此在使用swift的時(shí)候也想使用swift的反射機(jī)制時(shí)积暖,在一個(gè)大神的文章里面意外的碰到了swift的一種特殊的寫法,因?yàn)橐恢睕]有碰到過swift的這種寫法凉蜂,一直不理解這種寫法的意思是什么性誉。
let user = Users(userInfo:userInfo!)
let mirror = Mirror(reflecting: user)
let children = mirror.children
for case let (label?, value) in children {
}
然后自己百度了一下茎杂,或許沒明白什么意思,沒找到關(guān)鍵字倾哺,也沒百度到,然后順帶就google了一下忌愚,第一個(gè)就跑到apple官方的文檔里面去了却邓,也就是在這里面我找到了自己想要的答案。
在這段內(nèi)容里面我找到了自己想知道的內(nèi)容简十。
當(dāng)我使用for case in去循環(huán)children的時(shí)候撬腾,循環(huán)語句就會(huì)去匹配我們所設(shè)置的條件,label?的時(shí)候胰默,循環(huán)就只會(huì)匹配label不為空的值漓踢。當(dāng)label不設(shè)置可選值的時(shí)候,會(huì)循環(huán)出所有的內(nèi)容碟刺∈碓停或許我語言組織的有點(diǎn)不好理解,當(dāng)你看了我寫的這個(gè)小的測(cè)試demo就能明白了者填。
let ints: [Int?] = [nil,nil,1,2,nil,3]
for case let number? in ints {
print(number)
}
這個(gè)時(shí)候輸出的內(nèi)容為:1做葵、2、3
當(dāng)我把number?改為number的時(shí)候榨乎,輸出內(nèi)容變成了:
到這里我想大家就很明白這個(gè)語法的使用了蜜暑。