官术网_书友最值得收藏!

The for loop

The classic Java for loop, where we need to define the iterator explicitly, is not present in Kotlin. Here is an example of this kind of loop in Java:

    //Java 
    String str = "Foo Bar"; 
    for(int i=0; i<str.length(); i++) 
    System.out.println(str.charAt(i)); 

To iterate through a collection of items from start to finish, we can simply use the for loop instead:

    var array = arrayOf(1, 2, 3) 
 
    for (item in array) { 
        print(item) 
    } 

It can also be defined without a block body:

    for (item in array) 
        print(item) 

If a collection is a generic collection, then item will be smart cast to a type corresponding to a generic collection type. In other words, if a collection contains elements of type Int, the item will be smart cast to Int:

    var array = arrayOf(1, 2, 3) 
 
    for (item in array) 
        print(item) // item is Int 

We can also iterate through the collection using its index:

    for (i in array.indices) 
        print(array[i]) 

The array.indices param returns IntRange with all indexes. It is the equivalent of (1.. array.length - 1). There is also an alternative withIndex library method that returns a list of the IndexedValue property, which contains an index and a value. This can be deconstructed into these elements this way:

    for ((index, value) in array.withIndex()) { 
        println("Element at $index is $value") 
    } 

The construct (index, value) is known as a destructive declaration, and we will discuss it in Chapter 4, Classes and Objects.

主站蜘蛛池模板: 深水埗区| 嘉黎县| 故城县| 玉屏| 防城港市| 昭通市| 辽阳县| 防城港市| 云浮市| 江北区| 墨竹工卡县| 武陟县| 武鸣县| 宁远县| 宁海县| 绥中县| 连州市| 西华县| 海宁市| 江口县| 涟源市| 石楼县| 普兰县| 淮安市| 晋州市| 威信县| 北票市| 静宁县| 普兰店市| 措美县| 长乐市| 镇平县| 吉木乃县| 舟山市| 卓资县| 潼南县| 岗巴县| 惠安县| 富民县| 苏尼特左旗| 离岛区|