今週は第24回を開催しました。
前回の様子はコチラ↓
[第24回の様子]
2020/07/29に第24回を開催した。
参加メンバーは自分の他に4人で、総勢5名。前回2人だったので、前回比2.5倍の人数が集まったことになる。すごい!ドライバー役選びたい放題!!
勉強会本編の内容としては、練習問題集Kotlin Koansの第2章 Conventionsの前半、Comparison
からRange to
までの3問を完了し、画面上での進捗は38%となった。前回比+8%。だんだん問題が難しくなってきたのか、スピードが落ちている気がする。まあ勉強会のネタを用意する時間的余裕がありそうだということで……。
今回はJavaで書かれたプログラムのリライト問題というよりは、JavaにはないKotlin独自の概念に関する部分が多かった。
最後に4問目のFor loop
の問題に取り組もうとしたのだが、残り時間2分では解き切れなかった。残念。
[学んだことや疑問点]
- Comparison
- 前回の勉強会実装したComparatorの仲間のComparableインターフェースを実装する問題
- ドライバーは以下のようにMyDateをIntに変換して実装していて、なるほどと思った。
override fun compareTo(other: MyDate): Int { return ((this.year * 10000 + this.month * 100 + this.dayOfMonth) - (other.year * 10000 + other.month * 100 + other.dayOfMonth)) }
- 模範回答は
when
式を利用した形で、なるほどこういう書き方もあるのかと勉強になった
- In range
- Range to
in
演算子の後半でx..y
という形で範囲を指定するために、ClosedRange<HogeClass>
インターフェースを実装するやり方が紹介されていた- ClosedRangeを実装した上で、さらに
rangeTo()
関数を実装すると範囲指定ができるようになる。なるほど。
operator fun MyDate.rangeTo(other: MyDate) = DateRange(this, other) class DateRange(override val start: MyDate, override val endInclusive: MyDate): ClosedRange<MyDate> fun checkInRange(date: MyDate, first: MyDate, last: MyDate): Boolean { return date in first..last }
[まとめ]
今回も引き続き練習問題集Kotlin Koansを進めた。問題自体は解けたからいいんだけど、ちゃんと理解できてるのかやや不安が残る……とりあえずoperator
修飾子は完全に理解した(してない)。
来週もやっていくぞ!