淺談Swift中for case的使用!

小白第一次寫文章,望大神們多指點指點!

因為自己使用過JAVA的反射機制,因此在使用swift的時候也想使用swift的反射機制時,在一個大神的文章里面意外的碰到了swift的一種特殊的寫法,因為一直沒有碰到過swift的這種寫法,一直不理解這種寫法的意思是什么。

let user = Users(userInfo:userInfo!)

let mirror = Mirror(reflecting: user)

let children = mirror.children

for case let (label?, value) in children {

}

然后自己百度了一下,或許沒明白什么意思,沒找到關鍵字,也沒百度到,然后順帶就google了一下,第一個就跑到apple官方的文檔里面去了,也就是在這里面我找到了自己想要的答案。


在這段內容里面我找到了自己想知道的內容。

當我使用for case in去循環children的時候,循環語句就會去匹配我們所設置的條件,label?的時候,循環就只會匹配label不為空的值。當label不設置可選值的時候,會循環出所有的內容?;蛟S我語言組織的有點不好理解,當你看了我寫的這個小的測試demo就能明白了。

let ints: [Int?] = [nil,nil,1,2,nil,3]

for case let number? in ints {

print(number)

}

這個時候輸出的內容為:1、2、3


當我把number?改為number的時候,輸出內容變成了:


到這里我想大家就很明白這個語法的使用了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容