サーチ…


前書き

Kotlinに来るほとんどの人は、Javaでプログラミングの背景を持っています。

このトピックでは、JavaとKotlinを比較して、最も重要な相違点とKotlinがJava上で提供する宝石を強調する例を収集します。

変数の宣言

Kotlinでは、変数の宣言はJavaのものと少し違って見えます:

val i : Int = 42
  • 彼らはどちらかで始まるvalvar宣言作り、 final (「 ヴァル UE」)またはVARの iableを。

  • タイプは名前の後に記され、 :に区切られます:

  • Kotlinの型推論のおかげで、明示的な型宣言は、コンパイラが明白に検出できる型を持つ代入

Java コトリン
int i = 42; var i = 42または var i : Int = 42
final int i = 42; val i = 42

概要

  • コトリンは必要ありません;ステートメントを終了する
  • Kotlinはnullセーフです
  • Kotlinは100%Javaの相互運用性があります
  • Kotlinにはプリミティブはありませんが (可能であれば、JVMのオブジェクト対応を最適化します)
  • Kotlinクラスにはプロパティがあり、フィールドはありません
  • Kotlinは、自動生成されたequals / hashCodeメソッドとフィールドアクセサーを持つデータクラスを提供しています
  • Kotlinにはランタイム例外のみがあり、 チェック例外はありません
  • Kotlinにはnewキーワードはありません 。オブジェクトを作成するには、他のメソッドと同じようにコンストラクタを呼び出すだけです。
  • Kotlinは(限られた) 演算子のオーバーロードをサポートしています。たとえば、マップの値にアクセスするには、 val a = someMap["key"]
  • Kotlinは、JVM用のバイトコードだけでなく、 Java Scriptにもコンパイルできるだけでなく、Kotlinにバックエンドコードとフロントエンドコードの両方を書くことができます
  • Kotlinは、Java 6完全に互換性があります 。これは、(それほど古い)Androidデバイスのサポートに関して特に興味深いものです
  • KotlinはAndroid開発用に 正式にサポートされている言語です
  • Kotlinのコレクションには、 変更可能なコレクションと不変なコレクションの間に組み込みの矛盾があります
  • コトリンはコルーチンをサポートしています(実験的)

平等とアイデンティティ

Kotlinは使用しています==平等のために(つまり、呼び出しますequals内部)とを===参考アイデンティティのために。

Java コトリン
a.equals(b); a == b
a == b; a === b
a != b; a !== b

参照: https : //kotlinlang.org/docs/reference/equality.html

IF、TRYなどは式であり、式ではありません。

Kotlinでは、 iftry 、およびothersは式ではなく(値を返す)ため、(void)ステートメントではありません。

たとえば、KotlinにはJavaの三元Elvis演算子はありませんが、次のように書くことができます:

val i = if (someBoolean) 33 else 42

さらによく知られていないが、同様に表現力豊かなのは、 try です。

val i = try {
    Integer.parseInt(someString)
}
catch (ex : Exception)
{
    42
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow