kdnakt blog

hello there.

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

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

 

前回の様子↓

kdnakt.hatenablog.com

 

 

[第6回の様子]

2020/03/11に第6回を開催した。

 

参加メンバーは自分を含めて恐らく10人。今回は全員がリモートでの参加だった、はず。今回は新規参加のメンバーはなし(強いていえば我が家から三男K氏が参戦したくらい)。

今回も、前回と比べると発言するメンバーが増えた気がする。やったー!

 

今回は、第3回あたりから参加してくれている、ベテランのメンバーが初めてドライバを担当してくれた。最初のほうで学習した関数の書き方など、参加していなかった回の内容を適宜参照するなどして、うまくドライブしてくれてとても勉強になった。

順番にドライバ役を回すことができる雰囲気があり、それをうまく実践できているので良い。

 

内容としては、Learn Kotlin by Exampleの第2章 Control Flowの最後の2つ(Equality ChecksとConditional Expression)を進めた。どちらも書かれている内容は少なかったが、途中でサイト上でのプログラムの実行ができなくなる障害が発生したこともあり、これだけしか進まなかった。けれど、第2章を無事終えることができたので、これで良し。

次回からは第3章、Special Classesに進む予定。

 

今日は途中で障害が発生したらしく、Learn Kotlin by Exampleのサイト上でのコードの実行ができなかった。そのため、後半15分はpaiza.ioを利用して動作確認を進めていた。

paiza.io

別のメンバーがすすめてくれたideone.com(IDE ONE、アイディーイーワンと読むのだろうか?)も良さそうだった。これで、どれかが障害を起こした場合の代替案ができたので、勉強会の稼働率が高まった。ヨシ!

ideone.com

 

[学んだことや疑問点]

  • Equality Checks
    • ==を使うとオブジェクトの値比較、Setなら順序が違っても中身が同じならtrue
      • 正確には、a==ba==null ? b==null : a.equals(b)と同じ
    • ===を使うと同一のオブジェクトの時にtrue、参照先が同じでなければfalse
    • このへんは直感的になんとなく理解できる
    • 本題ではないが、setOfの話題が出た:setということは"Twain"が2回定義されたら1個になっているのか?ということで実験したら予想通りだった
val authors = setOf("Twain", "Shakespeare", "Hemingway", "Twain")
println(authors)
// [Twain, Shakespeare, Hemingway]
  • Conditional Expression
    • Goとかと一緒で、Kotlinには三項演算子(?:)がない
    • かわりに、ifを式として利用できる(なんとなくPythonに近い気がした)
    • 例:val m = if (a > b) a else b
    • この時、elseを省略するとコンパイルエラー:'if' must have both main and 'else' branches if used as an expression
    • 勉強会後、Slackでif式とelseに関する言語実装の話とか、最近のトレンドの話題が盛り上がっていた(あまりついていけず)

[まとめ]

第2章が終わった。やったー!

全9章なので、20%以上は終わっている計算になる。このままいけば、夏頃には終わるだろうか。やっていくぞ!