Google I/O 2017、我々はこの流れに乗るしかない。
皆様方が御存知の通り、KotlinがAndroidの公式言語になったのですね。
Javaに関してはOracleとGoogleが揉めていた1こともあって、「そうだねぇ……」という感じではありましたが、Kotlinは元々Androidでよく使われている言語の一つです。無知な私は「はへー」となって、「ほーん」となって、「あひょー」という感じでした。
“Kotlin is 100% interoperable with the Java programming language2”
はーん、そりゃすごい。あとなんかJavaをナウい感じにイケイケにした言語っぽい。
そんあこんなあって、流行りのなんとかウェーブに乗ってやるぜという気持ちになってきました。
素晴らしいことにこのイケイケウェーブのおかげで、Kotlinプログラマーが情報提供をドバドバしているっぽくて最高そうです。
やるか。そうやって我々はKotlinの奥地へなんとかかんとか。
変数宣言
var
今回は変数宣言なわけですが、こんな感じで。
/* Java */ String str = "hoge"; int num = 123;
/* Kotlin */ var str: String = "hoge" var num: Int = 123
Kotlinで変数宣言する場合にはvar
を使います。変数の型は(変数名): (型)
と、:
の後に入れる感じで。
ただ、KotlinはJavaと違って型推論があるイケイケ言語なのだ。我々Kotlinは賢いので上の場合だとこうできます。
var str = "hoge" var num = 123
イケイケ~
Kotlinが型推論出来るのはいろんなところで効いてきます。良い。
val
私みたいなポンコツはたまに何も考えないのでダメなんですけど、プログラミングにおいて不変のものは不変の型にしてしまうほうが望ましいのです。Javaだとfinal
を付けますよね。Kotlinはfinal
を付けるかわりに、val
で変数を宣言します。
/* Java */ final String str = "fuga";
/* Kotlin */ val str: String = "fuga"
変数宣言、どんどんval
でやっていきましょう。もちろん、var
を使う場面もあるので、そこら辺はいい感じに使い分けましょう。
Nullable
他言語ではOptionalと呼ばれていますが、KotlinではNullableと呼ばれます。まんまや。
これの何がいいかって話です。Nullableでない型(Non-Null types)にnullが代入できないことで、Javaのような実行時のNullPointerExceptionを回避できるわけです3。ヌルヌルしません。null安全じゃーんイケイケ。
通常、型はNullableではありません。Nullableの型を宣言する時には型のあとに?
を付けます。
/* Java */ String str = null; // コンパイルエラーしない
/* Kotlin */ val hoge: String = null // コンパイルエラー val fuga: String? = null // コンパイルエラーしない
KotlinのNull安全の話はまた今度詳しく書き留めておこうと思います。
イケイケ言語Kotlinこれからやっていくぞ!