kdnakt blog

hello there.

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

今週は第7回を開催しました。毎週休まず続けていて偉い。

 

前回の様子↓

kdnakt.hatenablog.com

 

 

[第7回の様子]

2020/03/18に第7回を開催した。

 

参加メンバーは自分を含めて5人。今回は4人がリモート、1人が会社での参加だったので、実質ほぼ全員がリモート状態。今回も新規参加のメンバーはなし。人が少なかったのは、開発締め切りが近い所為だろうか。

 

今回は、比較的若手のメンバー2人が初めてドライバを担当してくれた。順番にドライバ役を回せていて、おそらくあと3人やれば参加者全員がドライブしたことになるはず。

 

内容としては、Learn Kotlin by Exampleの第3章 Special Classesの前半の2つ(Data ClassesとEnum Classes)を進めた。今回は途中でサイト上でのプログラム実行ができなくなる障害もなく順調に進んだ。

 

会の終了後に、日本語で書かれたもう少し詳しいKotlin解説サイトを教えてもらった。この勉強会では今のまま進めて、必要に応じてこちらのサイトも参照するようにしよう。

dogwood008.github.io

 

[学んだことや疑問点]

  • Data Classes
    • data修飾子を使うとデータクラスを作ることができる
    • toString()が自動作成される
      • なので、println()でプロパティが出力できる
    • equals()も自動作成され、プロパティが同じ値ならtrue
      • プロパティが自作のデータクラスの場合、その中身まで比較してくれる
    • copy()でオブジェクトをコピーできる
      • copy()に引数を指定すると部分的にプロパティを修正できる
    • componentN()というメソッドでプロパティにアクセスすることもできる
      • リアライザとかで使うのか?と話題になったがあまり使い所が分からず。無念。
  • Enum Classes
    • クラスとあるけど、JavaEnumと大体一緒っぽい
    • when式が出てきてこれこないだやったやつ!ってなった
    • Enum+whenだとexhaustiveにできるのでelse書かなくていいのが便利そう
    • Enumなのでプロパティやメソッドも書ける
    • 急にbit演算(and)を出すのはやめて欲しい(わかるけどさあ……)
    • State.values()ってやったらListが取れた。Javaと大体一緒っぽいけど、説明欲しかったな……
    • values().forEach{println(it)}みたいにドライバがサラッと書いてて、前回学んだ内容をちゃんと活かせててえらい!

 

[まとめ]

第3章に突入!3月中に終えることはできるだろうか……ドキドキ。

やっていくぞ!