Swift for循環語句用法


一般來說,swift循環是遞增式遍歷。當然各種循環,swift都能辦到。但其大多采用關鍵字形式實現,大部分開發者更喜歡直接使用C式循環代碼。在swift3.0后,C語言形式被徹底廢棄,因此從低版本升上來的代碼如果是swift風格寫法,按照提示基本可以直接fix。但如果很多循環實現都是基於C語言形式,那不得不討論一下如何拯救這個可怕的習慣了。swift的循環語言特性跟python最為接近。所以,大多數python循環能處理的情況,swift都能辦到。

1:如何遍歷一個字典或者數組?

      首先要提的是swift的for..in..語法,這個語法在python當中被稱之為迭代。用於數組,字典之類的數據內容遍歷。從作用上分析,是直接將數組元素賦值給變量,並取出,無需通過數組下標來取值。而針對於字典,除了取出key值,我們還可以同時取出關鍵字。具體代碼如下

 

let list = [1,3,5,7,"string test"]

for i in list{

    print(i)

}

let dict = ["name":"key name","name1":"key1 name","name2":"key 2 name"]

for key in dict{

    print(key)

}

}

2:也許,我僅僅是需要一個計數器?

      更多時候,循環變量被用於約束循環的次數或者做為int類型進行引用,值得一提的是,swift支持直接區間遍歷。在3.0版本之前,python的區間語法range關鍵詞適用。在3.0以后。swift不推薦使用。並且基於自身語言特性,在使用時,需要額外加關鍵字。那么,我們如何用swift帶來的語法糖寫出漂亮的for循環呢 代碼如下:

 

for i in 1..<10{

    print(i)

    // 打印結果為1-9

}

for i in 1...10{

    print(i)

    //打印結果為1-10

}

 

for i in Range(start: 1,end: 10){

    print(i)

    // 打印結果為1-9 不推薦使用

}

  3:help 我真的需要遞減! 

    這也許是swift的一個大坑了,當然解決方式很容易。只需要一個關鍵字即可實現,swift3.0之后稍有變化。對要遍歷的區間調用reverse()方法,即可實現for循環的反向遍歷,代碼如下

 

for i in (0...10).reverse(){

    print(i)<br>    // 打印結果為10-0

}

  4:這就結束了嗎

    當然不是啦,從語言特性上來上說,python對數組和循環的處理是最令人覺得舒適的。而在循環的處理上,幾乎涵蓋了python的所有特性,且大多也是以函數調用的方式來處理的。下面就要介紹一下平時可能會用到的一些方法。

4.1.enumerate

   如詞,這是為遍歷對象調用一個枚舉方法,在對數組等結構進行遍歷時,我們偶爾需要知道每次遍歷的索引,那么就需要用到enumerate了,其返回對象是一個元組,形式為(x,y),x代表遍歷的索引值,y代表遍歷的元素。代碼如下:

 

for (index, i) in (1...10).enumerate(){

    print(index)// 遍歷索引

    print(i) // 遍歷元素

     

}

4.2 filter

     也許,你想要在循環就過濾掉一系列毫無意義的數據?,swift提供在循環時直接過濾的方法,代碼如下:

 

for i in (1...10).filter({ i in i % 2 == 0}) {

    print(i)

    //輸出結果為1-10之間的偶數

}

///////////補充一個漂亮的語法糖///////////

for i in (1...10).filter({ $0 % 2 == 0}) {//swift閉包可以省略參數且用$0匿名,第二個參數則用$1,以此類推

    print(i)

    //輸出結果為1-10之間的偶數

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM