いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Kotlinのめっちゃ分かりやすかった記事 (Qiita, Java, Kotlin)

概要

QiitaでKotlinについて、すごく分かりやすい記事を見つけたので、忘れないようメモメモ。

公開してくださった方に感謝。

qiita.com

qiita.com

qiita.com

Javaプログラマ向けと銘打ってありますが、Javaやってなくても充分分かります。

Kotlin勉強せなって思ってるんですが、なかなか時間とれていない・・・。

Pythonに似てる?

記事内にあるKotlinのコード見てると、微妙に Python にも似てるなって思ったり。

例えば、記事内にある hello world のコード

// Kotlin
fun main(args: Array<String>) {
  println("Hello, world!")
}

は、

# Python
from typing import List

def main(args: List[str]):
  print("Hello World!")

って感じ。

// Kotlin
var a: Int = 42
val b: Boolean = true

は、

# Python
a: int = 42
b: bool = True

って感じ。

// Kotlin
val foo = if (bar < 42) "abc" else "xyz"

は、

# Python
foo = "abc" if bar < 42 else "xyz"

って感じ。

// Kotlin
for (number in numbers) {
  println(number)
}

は、

# Python
for number in numbers:
  print(number)

って感じ。

// Kotlin
for (i in 0 until 100) {
  println(i)
}

は、

# Python
for i in range(100):
  print(i)

って感じ。

// Kotlin
for (i in 99 downTo 0) println(i) // for (int i = 99; i >= 0; i--)
for (i in 0 until 100 step 2) println(i) // for (int i = 0; i < 100; i += 2)
for (i in 1..100) println(i) // for (int i = 1; i <= 100; i++)

は、

# Python
for i in range(99, -1, -1): print(i)
for i in range(0, 100, 2): print(i)
for i in range(1, 101): print(i)

って感じ。

一番似てるなって思ったのが、new がいらないこと。

// Kotlin
val foo = Foo()

は、

# Python
class Foo:
  pass

foo = Foo()

って感じ。私がPython好きになった理由の一つがこのnewを書かないところなので。

他にもあるけど、このへんで。

新しい言語勉強しようとするときに、自分の知っている言語に似てるってのは

分かりやすくなる大事な要因の一つだと思っています。。

頑張って Kotlin 覚えよう。Smart CastNull Safetyの概念は素晴らしい。

似てるって感じて、ちょっとネットで調べてみたら、こんなのありました。

www.slant.co

PROS/CONS しっかり議論されてて面白いですね。


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。