今週は第34回を開催しました。
前回の様子はコチラ↓
[第34回の様子]
2020/10/07に第34回を開催した。
会社のカレンダーに登録されたイベント名を「Kotlin勉強会」から「Kotlin dojo」に変更して2回目の開催である。
参加メンバーは自分をいれて2名。……最初の15分は、誰も来てくれなかったので1人でオンラインMTGに参加して、黙々と問題を解いていた。後から1人来てくれて、自分が解いた問題についてああだこうだ話して、新しい視点を得ることができた。やはり1人より2人の方が良い。
勉強会本編の内容としては、練習問題集Kotlin Koansの第5章 Buildersを継続して、String and map builders
を解いた。進捗は93%となり、前回比+3%。残り10%を切って、いよいよ終わりが見えてきた!
[学んだことや疑問点]
- String and map builders
- 前回の
Function literals with receiver
の内容の復習といった感じの内容で、レシーバーに拡張関数を生やす問題。 StringBuilder
に拡張関数を生やすbuildString
関数のサンプルを見ながら、buildMutableMap
を実装するという内容。- 最初は以下のように実装したら、
Unresolved reference: put
というコンパイルエラーになってしまった。
import java.util.HashMap // start fun buildMutableMap(build: Map<Int, String>.() -> Unit): Map<Int, String> { val map = HashMap<Int, String>() map.build() return map } // end fun usage(): Map<Int, String> { return buildMutableMap { put(0, "0") // コンパイルエラー for (i in 1..10) { put(i, "$i") // コンパイルエラー } } }
fun <K, V> buildMutableMap(build: HashMap<K, V>.() -> Unit): Map<K, V> { val map = HashMap<K, V>() map.build() return map }
- やっぱり、
型.()
のあたりとか<K, V>.()
のあたりがなんとなく違和感がある……慣れが足りないのだろうか。
[まとめ]
今回も引き続き練習問題集Kotlin Koansを進めた。
今回は1人で、静かに「やったー!」を実践した。
後少しでKoansも終わりなので楽しく学んでいくぞ!!