会社でKotlin勉強会(第32回)を開催した

今週は第32回を開催しました。

 

前回の様子はコチラ↓

kdnakt.hatenablog.com

 

 

[第32回の様子]

2020/09/23に第32回を開催した。

 

参加メンバーは自分をいれて3名。この3人はほぼ固定。月末の締め切りが近いためか、今回は参加者が少なめだった。

今回は久しぶりに私がドライバーを担当した。

 

勉強会本編の内容としては、練習問題集Kotlin Koansの第4章 Propertiesの最後の問題、Delegates how it worksを解いた。進捗は88%となり、前回比+3%。

いよいよ終わりが見えてきたな……。

 

[学んだことや疑問点]

  • Delegates how it works
    • ミリ秒を示すLong型と年月日を保持するMyDate型の変換をDelegatesを利用して行う問題
    • 前回の勉強会で学んだ!!を利用してなんとかテストはパスした
    • しかし!!を利用してNullableな型から強制的にNon-Nullな値を取り出すというのはやはり微妙な気がする……
  • Nullable + !!
    • あるメンバーの発案でNullableな変数にnullが入っているときに、!!で変数にアクセスしたらどうなるのか、という疑問を確認することに
    • 試したのは以下のコード
fun main() {
  var myvar : Int? = null
  println("myvar")
  println(myvar)
  println(myvar!!.toString()) // 実行前の想定:ぬるぽ的な何かが発生する?
}
    • Kotlin PlaygroundやPaiza.ioを試したがなぜか勉強会の時間中はサーバーエラーが発生したりして動かなかった……
    • 勉強会中に、こちらのTry Kotlinというサイト(Kotlin=1.3.72)で試したところ、!!.toString()の箇所でkotlin.KotlinNullPointerExceptionが発生した
    • 勉強会後にPaiza.io(Kotlin=1.4.0)で試したところ、!!.toString()の箇所でjava.lang.NullPointerExceptionが発生した
    • この挙動の違いはなんだろうと思ったら、Kotlin 1.4.0のリリースノートに説明があった。Nullチェックの最適化のために変更されているらしい。なるほど。 

What's New in Kotlin 1.4 - Kotlin Programming Language

 

[まとめ]

今回も引き続き練習問題集Kotlin Koansを進めた。

今回は1回だけだけど、しっかり「やったー!」を実践できた!

前回新しく学んだことをちゃんと使いつつ、最新のKotlinをキャッチアップできた。

来週は第5章に突入するぞ!!