forEachの使い方

forEach関数

Collectionに対してループ処理を行う構文としては、forがある。

val list = listOf<String>("a", "b", "c")
for(s:String in list){
    print("$s ")
}

似たような形で、Collectionの要素1つ1つに対する処理を実行したい場合はforEach関数を利用することができる。

val list = listOf<String>("a", "b", "c")
list.forEach { print("$it ") } // it : リストの要素1つを表す

関数なので、戻り値を返すことも可能。(ただし戻り値はUnit)

val list = listOf<String>("a", "b", "c")
val result = list.forEach { print("$it ") } // resultの値はUnit型

関数なので、breakは利用不可(continueは使える)。どうしてもbreakを利用したい場合はラベルとreturnによるループ停止を利用する。

val list = listOf<String>("a", "b", "c")
list.forEach {
    if (it != "b") print("$it ")
    else return@forEach     // forEachに対してreturn(ループの終了)を行う
}

ただし、基本的にはループの制御が必要な場合などはforEachではなくfor文を利用した方が可読性が高くなる。