Kotlin の共通仕様
回している中身は it でアクセスできる
元の配列を書き換えない処理
実行結果を新しい変数に入れて、それを使う。
forEach
配列の中身を全て回してひとつひとつ処理を動かす
返り値はないので、結果を変数に入れることはできない。
numbers.forEach {number->
println("This Unit Cost is: ${number + 440} yen.")
}
This Unit Cost is: 540 yen.
This Unit Cost is: 640 yen.
This Unit Cost is: 740 yen.
map
https://qiita.com/watame/items/87b7923d4f3f59ffb653#map
配列一つ一つに処理して,
結果を配列で返す。
イテレーション(反復される単位) は it で表現できる。
val numbers = listOf(100, 200, 300)
val numbersWithDeliveryCost = numbers.map { it + 440 }
println(numbersWithDeliveryCost)
[540, 640, 740]
商品に配送料を追加する例。
val numbers = listOf(100, 200, 300)
numbers.map {number->
println("This Unit Cost is: ${number + 440} yen.")
}
This Unit Cost is: 540 yen.
This Unit Cost is: 640 yen.
This Unit Cost is: 740 yen.
商品ごとに配送料を通知する例。
forEach と同じく関数に書いておけば、即時実行される。
なので return を書かずに配列の中身一つ一つで処理を走らせるのにも使える。
必ず走らせる場合は forEach の方が望ましい?要検証
filter
配列をひとつひとつ条件に照らし合わせて
結果が true だったものをまとめた配列を返す
val numbers = listOf(100, 200, 300)
val numbersUnder300 = numbers.filter {number->
number < 300
}
println(numbersUnder300)
[ 100, 200 ]
300 円未満の商品だけ絞り込む例。
find
https://pouhon.net/kotlin-collection-method/1434/
内部の条件でみつけた最初の一つを結果にいれる
ひとつしか返ってこない。
val numbers = listOf(100, 200, 300)
val firstNumbersUnder300 = numbers.find {number->
number < 300
}
println(firstNumbersUnder300)
100
300 未満は 100 と 200 があるが
最初にヒットした 100 しか返ってこない。
sorted
https://kotlinlang.org/docs/collection-ordering.html#natural-order
元の配列をソートしたインスタンスを作成する。
val numbers = listOf(9,5,2,3,100,5,1)
val sortedNumbers = numbers.sorted()
println(sortedNumbers)
[1, 2, 3, 5, 5, 9, 100]
// TODO 日付
元の配列を書き換える
配列に対して実行するものなので、元の配列が書き換わる。
普通に listOf で作った配列には使えない。
専用の書き換えられるリストである mutableListOf で
作った配列にのみ使用できる。
sort
https://pouhon.net/kotlin-collection-method/1434/
val numbers = mutableListOf(9,5,2,3,100,5,1)
numbers.sort()
println(numbers)
[1, 2, 3, 5, 5, 9, 100]
元の配列自体を書き換えられる。
Top comments (0)