📜  Dart – 变量

📅  最后修改于: 2021-09-02 05:41:27             🧑  作者: Mango

Dart的变量:

变量名是分配给用户存储数据的内存位置的名称,并且在需要时可以通过调用其变量名在变量的帮助下获取该数据。有多种类型的变量用于存储数据。用于存储数据的类型取决于要存储的数据类型。

变量声明:

声明一个变量:

Syntax: type variable_name;

声明多个相同类型的变量:

Syntax: type variable1_name, variable2_name, variable3_name, ....variableN_name;

变量的类型可以是:

1. Integer
2. Double
3. String
4. Booleans
5. Lists
6. Maps

写入变量名或标识符的条件:

  1. 变量名或标识符不能是关键字
  2. 变量名或标识符可以包含字母和数字。
  3. 变量名或标识符不能包含空格和特殊字符,下划线 (_)美元 ($)符号除外。
  4. 变量名或标识符不能以数字开头。

笔记:
Dart支持类型检查,即检查数据类型和数据
变量保持是否特定于该数据。

示例 1:

在Dart中打印不同数据类型变量的默认值和赋值。

Dart
void main() {
  // Declaring and initialising a variable
  int gfg1 = 10;
   
  // Declaring another variable
  double gfg2;
  bool gfg3;
    
  // Declaring multiple variable
  String gfg4, gfg5 = "Geeks for Geeks";
    
  // Printing values of all the variables
  print(gfg1);  // Print 10
  print(gfg2);  // Print default double value
  print(gfg3);  // Print default string value
  print(gfg4);  // Print default bool value
  print(gfg5);  // Print Geeks for Geeks
}


Dart
void main() {
  // Assigning value to geek variable
  dynamic geek = "Geeks For Geeks";
    
  // Printing variable geek
  print(geek);
    
  // Reassigning the data to variable and printing it
  geek = 3.14157;
  print(geek);
}


Dart
void main() {
  // Assigning value to geek1 variable without datatype
  final geek1 = "Geeks For Geeks";
  // Printing variable geek1
  print(geek1);
    
  // Assigning value to geek2 variable with datatype
  final String geek2 = "Geeks For Geeks Again!!";
  // Printing variable geek2
  print(geek2);
}


Dart
void main() {
  // Assigning value to geek1 variable without datatype
  const geek1 = "Geeks For Geeks";
  // Printing variable geek1
  print(geek1);
    
  // Assigning value to geek2 variable with datatype
  const geek2 = "Geeks For Geeks Again!!";
  // Printing variable geek2
  print(geek2);
}


输出:

10
null
null
null
Geeks for Geeks

Dart的关键字:

关键字是一组保留字,不能用作变量名或标识符,因为它们是标准标识符,其函数在Dart中预定义。

Dart的动态类型变量:

这是一个用关键字dynamic初始化的特殊变量使用此数据类型声明的变量可以在程序运行期间隐式存储任何值。它与Dart的var数据类型非常相似,但它们之间的区别在于,当您使用 var 关键字将数据分配给变量时,它会被适当的数据类型替换。

Syntax: dynamic variable_name;

示例 2:

显示如何使用 dynamic 关键字动态更改数据类型。

Dart

void main() {
  // Assigning value to geek variable
  dynamic geek = "Geeks For Geeks";
    
  // Printing variable geek
  print(geek);
    
  // Reassigning the data to variable and printing it
  geek = 3.14157;
  print(geek);
}

输出:

Geeks For Geeks
3.14157

注意:如果我们在上面的代码中使用 var 而不是 dynamic ,那么它会显示错误。

输出:

Error compiling to JavaScript:
main.dart:9:10:
Error: A value of type 'double' can't be assigned to a variable of type 'String'.
  geek = 3.14157;
         ^
Error: Compilation failed.

Dart的Final 和 Const 关键字:

这些关键字用于在Dart定义常量变量,即一旦使用这些关键字定义了一个变量,那么它的值就不能在整个代码中改变。这些关键字可以在有或没有数据类型名称的情况下使用。

Syntax for Final:
// Without datatype
final variable_name

// With datatype
final data_type  variable_name

Syntax for Const:
// Without datatype
const variable_name

// With datatype
const data_type variable_name

示例 3:

在Dart程序中使用 final 关键字。

Dart

void main() {
  // Assigning value to geek1 variable without datatype
  final geek1 = "Geeks For Geeks";
  // Printing variable geek1
  print(geek1);
    
  // Assigning value to geek2 variable with datatype
  final String geek2 = "Geeks For Geeks Again!!";
  // Printing variable geek2
  print(geek2);
}

输出:

Geeks For Geeks
Geeks For Geeks Again!!

现在,如果我们尝试在上述程序中重新分配 geek1 变量,则:

输出:

Error compiling to JavaScript:
main.dart:8:3:
Error: Can't assign to the final variable 'geek1'.
  geek1 = "Geeks For Geeks Again!!";
  ^^^^^
Error: Compilation failed.

示例 4:

在Dart程序中使用 const 关键字。

Dart

void main() {
  // Assigning value to geek1 variable without datatype
  const geek1 = "Geeks For Geeks";
  // Printing variable geek1
  print(geek1);
    
  // Assigning value to geek2 variable with datatype
  const geek2 = "Geeks For Geeks Again!!";
  // Printing variable geek2
  print(geek2);
}

输出:

Geeks For Geeks
Geeks For Geeks Again!!

现在,如果我们尝试在上述程序中重新分配 geek1 变量,则:

输出:

Error compiling to JavaScript:
main.dart:8:2:
Error: Can't assign to the const variable 'geek1'.
 geek1 = "Geeks For Geeks Again!!";
 ^^^^^
Error: Compilation failed.