Dart-programming-variables

提供:Dev Guides
移動先:案内検索

Dartプログラミング-変数

変数は、値を格納する「メモリ内の名前付きスペース」です。 つまり、プログラム内の値のコンテナとして機能します。 変数名は識別子と呼ばれます。 以下は、識別子の命名規則です-

  • 識別子をキーワードにすることはできません。
  • 識別子にはアルファベットと数字を含めることができます。
  • アンダースコア(_)とドル($)記号を除いて、識別子にスペースと特殊文字を含めることはできません。
  • 変数名は数字で始めることはできません。

型の構文

変数は、使用する前に宣言する必要があります。 Dartはvarキーワードを使用して同じことを実現します。 変数を宣言するための構文は以下のとおりです-

var name = 'Smith';

dartのすべての変数は、値を含むのではなく、値への参照を格納します。 nameという変数には、「Smith」という値を持つStringオブジェクトへの参照が含まれています。

タイプ構文

Dartは、変数名の前にデータ型を付けることで type-checking をサポートしています。 型チェックにより、変数がデータ型に固有のデータのみを保持することが保証されます。 同じための構文は以下のとおりです-

String name = 'Smith';
int num = 10;

次の例を考慮してください-

void main() {
   String name = 1;
}

上記のスニペットでは、変数に割り当てられた値が変数のデータ型と一致しないため、警告が表示されます。

出力

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'

すべての初期化されていない変数の初期値はnullです。 これは、Dartがすべての値をオブジェクトと見なすためです。 次の例は同じことを示しています-

void main() {
   int num;
   print(num);
}

出力

Null

動的キーワード

静的型なしで宣言された変数は、暗黙的に動的として宣言されます。 変数は、varキーワードの代わりにdynamicキーワードを使用して宣言することもできます。

次の例は同じことを示しています。

void main() {
   dynamic x = "tom";
   print(x);
}

出力

tom

最終および定数

*final* および *const* キーワードは、定数を宣言するために使用されます。 Dartは、finalまたはconstキーワードを使用して宣言された変数の値の変更を防ぎます。 これらのキーワードは、変数のデータ型と組み合わせて、または *var* キーワードの代わりに使用できます。
*const* キーワードは、コンパイル時の定数を表すために使用されます。 *const* キーワードを使用して宣言された変数は、暗黙的にfinalです。

構文:最終キーワード

final variable_name

OR

final data_type  variable_name

構文:constキーワード

const variable_name

OR

const data_type variable_name

例-最終キーワード

void main() {
   final val1 = 12;
   print(val1);
}

出力

12

例– constキーワード

void main() {
   const pi = 3.14;
   const area = pi*12*12;
   print("The output is ${area}");
}

上記の例では、 const キーワードを使用して、 pi および area の2つの定数を宣言しています。 area 変数の値はコンパイル時の定数です。

出力

The output is 452.15999999999997

-コンパイル時定数の計算に使用できるのは const 変数のみです。 コンパイル時定数は、コンパイル時に値が決定される定数です。

*final* またはconstキーワードで宣言された変数を変更しようとすると、Dartは例外をスローします。 以下に示す例は同じことを示しています-
void main() {
   final v1 = 12;
   const v2 = 13;
   v2 = 12;
}

上記のコードは、次のエラーを output としてスローします-

Unhandled exception:
cannot assign to final variable 'v2='.
NoSuchMethodError: cannot assign to final variable 'v2='
#0  NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178)
#1      main (file: Test.dart:5:3)
#2    _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261)
#3    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)