Kotlin 関連書籍について
書籍 Kotlinイン・アクション を読んでいます。
2022 年 1 月現在の Kotlin 最新バージョン が 1.6.10
であるのに対し、本書が解説しているのは 1.0
のようなので、役に立つのかな…と当初は考えていましたが、今のところ、これは駄目だ、というところは無さそうです。
(気になる人はドキュメントの "Earlier versions" (このあたり) で新機能について説明があります)
他方、 Amazon Kindle の Unlimited で提供されている Kotlin 関連書籍も読んでみましたが、全てイマイチでした。素直にお金出して Kotlin イン・アクション買いましょう。
Java 開発経験と、あと何かもう少し関数型言語的な機能(TypeScript とか Rust 程度)が有る言語に触れたことがあれば、流し読みで理解できて、読み切ればレビュー指摘受けながら Kotlin 開発できるようになってそうです。
また、公式リファレンス(のコア部分)を日本語訳されている方がいらっしゃるようです(リポジトリの更新日を見てみると、結構古いバージョンのように思われますが…):
実行環境セットアップ
実行するだけならオンラインで playground が用意されています:
が、 Java との相互運用的なところも確認したいと思うので、最初からローカルに環境を作っておきます。
SDKMAN! で JDK17 と Gradle をインストール。 Windows であれば SDKMAN! の代わりに Scoop で双方インストールできるでしょう。 Scoop のインストールについては こちら で触れています。
IDE は IntelliJ IDEA の Community 版を利用。
IntelliJ はショートカットキーが独特なので初めてだと戸惑いますが、取り敢えず Ctrl
+ Shift
+ A
でコマンドパレット、だけ覚えておけば何とかなるでしょう。
プロジェクト作成
gradle init
コマンドで Kotlin プロジェクト雛形作成できます。その上で、次の2点を編集します:
-
kotlin プラグイン最新化 (本文章記載時点では
1.6.10
)
plugins {
id("org.jetbrains.kotlin.jvm") version "1.6.10"
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
こちらの記事を参考にしました:
読書メモ
本書を読んだり、 Kotlin Koans をやってみて引っかかった場所などをメモしています。
return は必須
最近の言語(Rust や Scala だったかな?)は関数から戻る際の return
が必要ないイメージがあって、 Kotlin もそうなのかと思い込んで return
省略してコンパイラに怒られる、というのを何回か繰り返しました。
すぐ慣れるとは思います。
object キーワードの用途が多いので混乱する(p.122, 4.4 object キーワード: クラスの宣言とインスタンスの生成の組み合わせ)
書籍では次の3つの状況で利用されるとあります:
-
オブジェクト宣言(object declaration)
-
コンパニオンオブジェクト(companion object)
-
オブジェクト式(object expression)
このうち、最後の "オブジェクト式" だけはシングルトンでなく都度オブジェクトを生成します(p.133)。
object
はシングルトンの代替、というイメージが強くついていたので、 Koans で初めて出てきたとき混乱しました。
6.1.11 null 許容性の区別と Java (p.198, リスト 6.16)
書籍では、詳細なメッセージを伴った IllegalArgumentException
が送出されるとありますが、実際には単純に NullPointerException
が送出されました。
1.4.0 の次の変更が影響していそうです:
-
Unified exception type for null checks - What’s new in Kotlin 1.4
新機能は存在すらわからないのでリリースメモも読む必要がありそう
前述のような機能の変更には気づけますが、完全新機能の場合、前述したように リリースメモ の新機能を確認しないと存在に気づけないですね。
具体例としては、 1.3
で導入された coroutine とか。