推荐答案
在 Dart 中,变量和常量的声明方式如下:
变量声明
- 使用
var
关键字声明变量,类型由编译器自动推断。var name = 'Dart';
- 使用特定类型声明变量,明确指定变量的类型。
String name = 'Dart';
- 使用
dynamic
关键字声明变量,允许变量在运行时改变类型。dynamic value = 42; value = 'Hello';
常量声明
- 使用
final
关键字声明不可变的变量,只能赋值一次。final String language = 'Dart';
- 使用
const
关键字声明编译时常量,值在编译时确定。const int version = 2;
本题详细解读
变量声明
var
关键字:用于声明一个变量,类型由编译器根据初始值自动推断。一旦类型确定,变量就不能再改变类型。var age = 25; // 类型推断为 int age = 26; // 合法 age = 'twenty-six'; // 非法,类型不匹配
特定类型声明:可以直接指定变量的类型,明确变量的数据类型。
String name = 'Dart'; // 明确指定类型为 String
dynamic
关键字:允许变量在运行时改变类型,适用于需要动态类型的情况。dynamic value = 42; // 初始类型为 int value = 'Hello'; // 合法,类型变为 String
常量声明
final
关键字:用于声明一个不可变的变量,只能赋值一次。通常用于运行时确定的常量。final String language = 'Dart'; // 只能赋值一次 language = 'Flutter'; // 非法,不能重新赋值
const
关键字:用于声明编译时常量,值在编译时确定,且必须是编译时常量表达式。const int version = 2; // 编译时常量 const double pi = 3.14; // 编译时常量
final
与 const
的区别
final
:可以在运行时赋值,但不能重新赋值。const
:必须在编译时赋值,且值必须是编译时常量。
final DateTime now = DateTime.now(); // 合法,运行时赋值 const DateTime now = DateTime.now(); // 非法,编译时无法确定值