Kotlin const、var、およびvalキーワード

1. 前書き

このチュートリアルでは、* Kotlin言語の_const _、_ var_、および_val_キーワードの主な違いを概説します*。
これらのキーワードをコンテキストに入れるために、*それらを対応するJavaと比較します*。

2. 入力について

これらのキーワードを理解するには、言語が従うことができるタイプシステムの2つの主要なカテゴリであるマニフェストタイピングと推論タイピングを理解する必要があります。

* 2.1。 マニフェスト入力*

すべての言語は、プログラム内のデータを保存および操作するためのさまざまなプリミティブデータ型を提供します。 マニフェストタイピング規則に従うプログラミング言語では、プログラム内でデータ型を明示的に定義する必要があります。
Javaは、バージョン10まで、厳密にこの規則に従います。 たとえば、プログラム内に数値を格納する場合、_int_などのデータ型を定義する必要があります。
int myVariable = 3;

* 2.2。 推測入力*

Javaとは異なり、* Kotlinは推測される入力規則に従います*。 型推論をサポートする言語は、*コンパイル時にプログラム内のデータ型を自動的に検出します*。
この検出により、開発者として、使用しているデータ型を心配する必要がなくなります。

*3. var *

まず、変更可能な非最終変数を表すKotlinのキーワード* _var_から始めます。 初期化されると、変数によって保持されているデータを自由に変更できます。*
これがどのように機能するかを見てみましょう。
var myVariable = 1
舞台裏では、___myVariable ____Int ___dataタイプで初期化されます。
Kotlinは型推論を使用しますが、変数を初期化するときにデータ型を指定するオプションもあります:*
var myVariable: Int = 1
  • 1つのデータ型として宣言された変数が間違った型の値で初期化されると、エラーが発生します。*

var myVariable: Int = b //ERROR!

*4. val *

Kotlinの_val_キーワードは、_var_キーワードと同じように機能しますが、重要な違いが1つあります。変数は読み取り専用です。
たとえば、Kotlinでは次のように記述します。
val name: String = "Baeldung"
一方、Javaでは、次のように記述します。
final String name = "Baeldung";
Javaの_final_変数と同様に、__ val __variablesは宣言時、または_Class_コンストラクターで割り当てる必要があります。
class Address(val street: String) {
    val name: String = "Baeldung"
}

*5. const *

__valと同様、__const ___keywordで定義された__variablesは不変です。 ここでの違いは、** __const __がコンパイル時に既知の変数に使用されることです**。
変数の宣言__const __は、Javaで__static ___キーワードを使用するのとよく似ています。
Kotlinで_const_変数を宣言する方法を見てみましょう。
const val WEBSITE_NAME = "Baeldung"
そして、Javaで書かれた類似のコードは次のようになります。
final static String WEBSITE_NAME = "Baeldung";

6. 結論

この記事では、マニフェスト型と推論型の違いを簡単に見てきました。
次に、Kotlinの_var、_ _val_、and __const __keywordsの違いを調べました。