Android
 Computer >> コンピューター >  >> プログラミング >> Android

Kotlinのvarとvalの違いは何ですか?


Kotlinでは、2つの異なるキーワードを使用して変数を宣言できます。1つは varです。 もう1つはval 。この記事では、例を取り上げて、これらの宣言が互いにどのように異なるかを示します。

属性 var val
宣言 var varName ="hello World" val sName ="tutorialspoint.com"
不変性 ミュータブル 不変
いいえ。変数を割り当てることができる回数 複数回割り当てることができます。 複数回割り当てることはできません。
再割り当て 再割り当て可能 再割り当てできません

次の例では、 "val"を使用して2つの異なる変数を宣言する方法を示します。 および"var" 。また、'var'を使用して宣言された変数は変更可能であり、'val'を使用して宣言された変数も変更できることがわかります。 実行時にエラーメッセージ「Valを再割り当てできません。」が表示されるため、再割り当てできません。

val sName = "tutorialspoint";
var varName = "hello World"

fun main() {
   println("Example of val--->"+sName);
   println("Example of Var--->"+varName);

   // Variable declared by var is mutable
   varName = "new value";
   println("New value of the variable declared using Var: " +varName);
}

出力

次の出力が生成されます-

Example of val--->tutorialspoint
Example of Var--->hello World
New value of the variable declared using Var: new value

それでは、 valを使用して宣言された変数の値を変更してみましょう。 −

val sName = "tutorialspoint";
var varName = "hello World"

fun main() {
   println("Example of val--->"+sName);
   println("Example of Var--->"+varName);

   // Variable declared by val is not mutable
   sName = "new value";
   println("New value of the variable declared using Var: " +sName);
}

出力

実行時にエラーをスローします-

main.kt:9:5: error: val cannot be reassigned
sName = "new value";
^

  1. DirectX11とDirectX12の違いは何ですか?

    DirectXは、マルチメディアコンテンツをレンダリングし、グラフィカルハードウェアと通信するためにソフトウェアによって使用されるAPIまたはアプリケーションプログラミングインターフェイスのコレクションです。 DirectXの主要コンポーネントAPIであるDirect3Dは、ソフトウェアとグラフィックスハードウェア間の通信を処理します。すべてのハードウェアが異なるため、関数と呼び出しの標準化されたライブラリを使用してグラフィックカードと通信すると、ゲーム開発がスピードアップします。これはハードウェアアブストラクションと呼ばれ、APIの主な仕事です。 車について考えてみましょう。1台の車を運転

  2. C#のリストと辞書の違いは何ですか?

    辞書は、C#のキーと値のコレクションです。 Dictionary は、System.Collection.Generics名前空間に含まれています。辞書はジェネリック型であり、そこにないキーを見つけようとするとエラーを返します。 リストコレクションはジェネリッククラスであり、リストを作成するために任意のデータ型を格納できます。 リストはアイテムのグループです- List<string> myList = new List<string>() {    "Maths",    "English&qu