Swift:遍歷方法 for in 和 forEach的區(qū)別

同類型的泛型集合:

在集合的元素類型相同(比如上面的數(shù)組是String類型)的情況下,兩者遍歷效果相同,方便、敏捷,我們可以隨意選用。

不同類型元素的集合:

在集合的元素類型不相同(比如上面的數(shù)組是IntString類型)的情況下,兩者遍歷效果相同,方便、敏捷,我們可以也隨意選用。


return關(guān)鍵字

在使用return關(guān)鍵字的時候,很明顯,for in中是當(dāng)符合當(dāng)前執(zhí)行語句時,程序直接終止到此并返回, 比如上面的元素"4"、"5"、"Hello World"沒有被執(zhí)行;而forEach中是當(dāng)符合當(dāng)前執(zhí)行語句時,程序跳過本次判斷繼續(xù)執(zhí)行, 比如上面的元素"4"、"5"、"Hello World"被執(zhí)行。

continue關(guān)鍵字

在使用continue關(guān)鍵字的時候,for in可以正常遍歷并且執(zhí)行,而且continue的作用是跳出本次循環(huán),不影響后面的執(zhí)行; 而在forEach中,swift是不允許這樣執(zhí)行的,報錯的原因是說continue只允許出現(xiàn)在循環(huán)語句中,也就是說不能使用在forEach的closure中。

break關(guān)鍵字

break關(guān)鍵字中,對于for in來說是可以的,跳出本層循環(huán),也就是for循環(huán),然后繼續(xù)執(zhí)行后面的程序; 對于forEach來說,同continue關(guān)鍵字的效果一樣,swift不允許這樣使用,原因說的是break只能用于循環(huán)語句或switch語句,break會退出本層循環(huán)語句

小結(jié):

for in 能使用 return、break、continue關(guān)鍵字,forEach不能使用 break、continue關(guān)鍵字

for in 和 forEach 在 return關(guān)鍵字 的使用上有著本質(zhì)的區(qū)別

一般情況下,兩者都可通用,都方便、敏捷

for in 使用范圍比 forEach更廣

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容