今週は第33回を開催しました。
前回の様子はコチラ↓
[第33回の様子]
2020/09/30に第33回を開催した。
今回から、会社のカレンダーに登録されたイベント名を「Kotlin勉強会」から「Kotlin dojo」に変更した。特に深い意味はないけど。
参加メンバーは自分をいれて4名。前回よりも1人多い、やったー!
勉強会本編の内容としては、今回から練習問題集Kotlin Koansの第5章 Buildersに突入、最初の問題Function literals with receiver
を解いた。進捗は90%となり、前回比+2%。
いよいよ終わりが見えてきたな……。
[学んだことや疑問点]
- Function literals with receiver
- レシーバと言われると、自分の経験的にはGo言語を思い出したが、プログラミングの一般用語だと教えてもらった
- 文法的には、
val sum: Int.(Int) -> Int = { other -> plus(other) }
またはval sum = fun Int.(other: Int): Int = this + other
のように宣言するらしい - 問題自体はサクッと解答して問題なく終了
型.()
の部分がなんともキモい、という話を参加者たちとひたすらしていた- あと2つめの文法に従うと=が2個出てくるのもなんかキモい気がするって話もした
- 再びのNullable
- あるメンバーの発案でNullableなFunction literals with receiverを作る、というのをやってみたがうまくいかなかった
- 試したのは以下のコード
fun main() { val isEven: (Int.() -> Boolean)? = { this % 2 == 0 } println(2.isEven()) // Error: Reference has a nullable type '(Int.() -> Boolean)?', use explicit '?.invoke()' to make a function-like call instead }
[まとめ]
今回も引き続き練習問題集Kotlin Koansを進めた。
今回も1回だけだけど、しっかり「やったー!」を実践できた!
後少しでKoansも終わりなので楽しく学んでいくぞ!!