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

  1. var: 用于声明可变变量,支持类型推断并能多次赋值,但只能是同类型的数据赋值。之后其类型更改,会抛出异常。

复制代码
   var number = 10;
    
   void main() {
     print(number); // 这将打印10。
     number = 20; // 再次赋值,但必须同类型
     print(number); // 这将打印20。
   }
  1. late: 用于延迟初始化变量,可多次赋值。如果变量在初始化之前被访问,会抛出异常。

复制代码
   late int number;//声明时不立即初始化
    
   void main() {
     print(number); // 这将抛出异常,因为number未初始化。
     number = 20; // 第一次初始化赋值
     print(number); // 这将打印20。
     number = 30; // 第二次赋值
     print(number); // 这将打印30。
   }
  1. const : 用于创建编译时常量且只能被赋值一次。使用const关键字的变量其值在编译时就已知,并且不能更改。

复制代码
   const double pi = 3.14;//编译时就要赋值,不能通过计算获得
    
   void main() {
     print(pi); // 这将打印3.14。
   }
  1. final: 用于声明一个变量且只能被赋值一次。可以在运行时计算final变量的值并初始化。

复制代码
   final int number = 20 + 1;

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

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

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

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

相关推荐
火柴就是我19 小时前
flutter 之真手势冲突处理
android·flutter
Speed12319 小时前
`mockito` 的核心“打桩”规则
flutter·dart
法的空间19 小时前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios
恋猫de小郭19 小时前
Android 将强制应用使用主题图标,你怎么看?
android·前端·flutter
玲珑Felone20 小时前
从flutter源码看其渲染机制
android·flutter
ALLIN2 天前
Flutter 三种方式实现页面切换后保持原页面状态
flutter
Dabei2 天前
Flutter 国际化
flutter
Dabei2 天前
Flutter MQTT 通信文档
flutter
Dabei2 天前
Flutter 中实现 TCP 通信
flutter
孤鸿玉2 天前
ios flutter_echarts 不在当前屏幕 白屏修复
flutter