そぬばこ

備忘録とか、多分そんな感じ。

Java2年生がKotlinを学ぶ -1- 「var, val」

Google I/O 2017、我々はこの流れに乗るしかない。
皆様方が御存知の通り、KotlinがAndroidの公式言語になったのですね。

Javaに関してはOracleGoogleが揉めていた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これからやっていくぞ!

参考にしました

kotlinlang.org qiita.com qiita.com kotlinlang.org