今週は第14回を開催しました。
前回の様子はコチラ↓
[第14回の様子]
2020/05/20に第14回を開催した。
参加メンバーは自分を含めて5人。引き続き、みんな在宅勤務中なので、それぞれオンラインミーティングルームに参加する形式で、30分間実施した。仕事が忙しい時期なのか、参加者がやや少なめで、前回から継続して参加しているのは2名のみと入れ替わりが激しい。
今回はやや余裕があったので、久々にVR参加*1。パペ文字は「やったー」もできるので優秀。

勉強会本編の内容としては、Learn Kotlin by Exampleの第5章 Collectionsのpartition(参加していなかったメンバーが多かったのと、前回はサイトが動作しなかったので再チャレンジ)、flatMap、min, maxの3節を進めた。
今週は最後までLearn Kotlin by Exampleのサイト上でコードが実行できてよかった。
[学んだことや疑問点]
- partition
- 基本は第13回で確認したとおり
- 判定条件がすべてtrueになる場合を試したら、ちゃんと空のlistが得られた
val numbers = listOf(1, -2, 3, -4, 5, -6)
println(numbers.partition { it > -10 })
// ([1, -2, 3, -4, 5, -6], [])
- flatMap
- JavaScriptとかでみたことあるやつ
- 名前の通り階層をフラットにしたlistを作れる
- 個人的にはあまり使う機会がない、という話をしたら、関数型の頭になっていないからではないか、と指摘された。なるほど。
- min, max
- listの最小値、最大値を返すメソッド
- listが空の場合には
nullが返る - stringのlistでも動いた。Unicode順だろうか。
val chars = listOf("a", "b", "c")
println("Chars: $chars, min = ${chars.min()} max = ${chars.max()}")
// Chars: [a, b, c], min = a max = c
- listのlistで試したらエラーが出た。Comparableインターフェースを実装する必要があるらしい。なるほど。
val numbers = listOf(listOf(1), listOf(2), listOf(3))
println("Numbers: $numbers, min = ${numbers.min()} max = ${numbers.max()}")
// None of the following functions can be called with the arguments supplied: public fun> Iterable.min(): ??? defined in kotlin.collections public fun Iterable.min(): Double? defined in kotlin.collections public fun Iterable.min(): Float? defined in kotlin.collections
[まとめ]
今回は、各節の最後に「やったー!」を実施できた。やったー!
次回もCollectionの続きをやるぞ!