今週は第15回を開催しました。
前回の様子はコチラ↓
[第15回の様子]
2020/05/27に第15回を開催した。
参加メンバーは自分を含めて5人。引き続き、みんな在宅勤務中なので、それぞれオンラインミーティングルームに参加する形式で実施。
いつもどおり、30分間実施したかったのだが、自分を含めた3人のメンバーが、直前の時間まで1日がかりの研修に参加しておりスケジュールが遅延していたため、12分遅れでの開始となった。開始まで根気よく待っていてくれた2名の参加者にはあたまが上がらない。
勉強会本編の内容としては、Learn Kotlin by Exampleの第5章 Collectionsのsorted
、Map Element Access
、zip
、getOrElse
の4節を進め、第5章を無事突破した。
今週も最後までLearn Kotlin by Exampleのサイト上でコードが実行できてよかった。
[学んだことや疑問点]
- sorted
list.sorted()
で昇順にソートされたリストが得られる- その場合に、元のlistは変更されない
sorted { ~ }
のようにセレクタ関数を渡すと、その関数の返り値を基準にソートされた元の値のリストが返る- Map Element Access
- 第3章のはじめにMapの節が出てきたときに説明が欲しかったやつ
- Mapには
map["key"]
とmap.getValue("key")
の2種類のアクセス方法がある - キーが存在しない場合、前者は
null
を返す可能性があるが、getValue
は例外を送出する val newMap = map.withDefault { it }
でgetValue
時にデフォルト値を返すmapを作ることができる- ただし、
newMap["nonExistentKey"]
の場合はnull
を返すので注意 - zip
- 2つのlistを
zip
すると、Pair
のリストが返る - ただし、リスト内のデータの件数は元のリストの少ない方に合わせられる
- 空のリストでzipした場合は空のリストになる
- Pairを作るかわりに別のオブジェクトに変換することもできる
- getOrElse
list.getOrElse(1) { 42 }
のようにデフォルト値を定義するmap.withDefault
と似ているが違いがよくわからない...listでも使える、ということくらいかmap.getOrElse
はキーが存在しても値がnull
の場合にElse
で定義された値を返す
val map = mutableMapOf<String, Int?>() map["x"] = null println(map.getOrElse("x") { 1 }) // 1が出力される
[まとめ]
今回も、各節の最後にきっちり「やったー!」を実施できた。やったー!
次回からはScope Functionsをやっていくぞ!