flutter语法:var、late、const、final区别

var: 用于声明可变变量,支持类型推断并能多次赋值,但只能是同类型的数据赋值。如果变量在赋值之前被访问,会抛出异常。

var number = 10;
 
void main() {
  print(number); // 这将打印10。
  number = 20; // 再次赋值,但必须同类型
  print(number); // 这将打印20。
}


late: 用于延迟初始化变量,可多次赋值。如果变量在初始化之前被访问,会抛出异常。

late int number;//声明时不立即初始化
 
void main() {
  print(number); // 这将抛出异常,因为number未初始化。
  number = 20; // 初始化
  print(number); // 这将打印20。
}


const: 用于创建编译时常量且只能被赋值一次。使用const关键字的变量其值在编译时就已知,并且不能更改。

const double pi = 3.14;//编译时就要赋值,不能通过计算获得
 
void main() {
  print(pi); // 这将打印3.14。
}


final: 用于声明一个变量且只能被赋值一次。可以在运行时计算final变量的值并初始化。

final int number = 20 + 1;

void main() {
  print(number); // 这将打印21。
  // number = 30; // 这将抛出异常,因为number已被final声明为不可变。
}



总结:

1、var是自推断类型,声明变量之后其类型不可变;late声明变量后,可以在后面的代码中对其进行初始化;const、final:只能赋值一次,且赋值后都是不可变的。

2、var和late:var提供了类型推断和一定的灵活性,而late则提供了延迟初始化和显式懒加载的能力,有助于优化程序性能和资源使用。

3、const和final:const确保值在编译时确定且不可变,而final确保变量或字段在初始化后不可变,但可以在运行时确定其值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容