こんにちは😀
今回から、マップやリストである集合体で使われる関数をみていきます。
今回は、リストで関数(ラムダ式)を使用してみましょう。
以下は、main関数内にリストを持つ変数のlistAを作成します。
さらに、map関数を使用して、listAから要素を取り出し掛け算をしてlistB(ラムダ式)にセットしています。(4行目)
fun main(args: Array<String>) {
val listA = listOf(1,3,5)
val listB = listA.map{a->a*5}
println(“A:”+listA.toString())
println(“B:”+listB.toString())
}
ここでは、ラムダ式が「{}」を持っているので、map関数の「()」は省略できます。
もちろん、以下のように「()」を付けてもOKです。
val listB = listA.map({a->a*5})
実行しましょう。
listBの結果がlistAの要素を「*5」して出力されています。
また、以下のように省略して書くこともできます。
下の処理は、4,5行目と出力の9,10行目を追加しています。
4,5行目の「it」は、引数が1つの場合に暗黙に「it」という名前で引数を定義してくれます。
4行目は「a」と「it」に変えているだけですが、5行目のように「it」を使うことで引数が1つである場合「{it*5}」といった省略形を書くことができます。
fun main(args: Array<String>) {
・・・・・・(略)・・・・・・・
val listC = listA.map{it->it*5}
val listD = listA.map{it*5}
println(“A:”+listA.toString())
println(“B:”+listB.toString())
println(“C:”+listC.toString())
println(“D:”+listD.toString())
}
実行しましょう。
B、C、Dは同じ処理のため結果も同じく出力されています。
リストをmap関数を使用してラムダ式で拡張できるのは便利だと思いました。
また、ラムダ式の時点でだいぶ処理はスッキリしますが、今回使用した「it」を使用するとより処理が短くすることができます。
今回はここまで🤚
では、また次回。
コメント