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确保变量或字段在初始化后不可变,但可以在运行时确定其值。

相关推荐
●VON8 小时前
Flutter 鸿蒙插件适配实战:用 flutter_native_timezone_2025 1.0.1 读取当前时区与系统目录
flutter·华为·harmonyos·鸿蒙
黑科技iOS上架10 小时前
iOS深度混淆flutter应用的最佳实践
flutter·ios·混淆·审核·深度混淆
恋猫de小郭12 小时前
CPF-Flutter 社区提出折叠场景分栏(平行视界) 方案
android·前端·flutter
程序员老刘1 天前
Android Studio Quail 4发布,看日志我以为谷歌放弃Flutter了
flutter·android studio·ai编程
Crazy_MT1 天前
Flutter 本地大模型实战:做一个自然语言记账工具
flutter·llm·ai编程
嵩风抚1 天前
一款HK银行APP的业务+技术
android·flutter·react native·html5
不羁的木木1 天前
给鸿蒙 App 增加广播收发能力 —— flutter_broadcasts 的鸿蒙使用指南
flutter·harmonyos
不羁的木木1 天前
给鸿蒙 App 增加打开外部网页能力 —— flutter_web_browser 的鸿蒙使用指南
前端·flutter·harmonyos
安好说AI2 天前
Flutter 三方库 sound_mode 的鸿蒙化适配指南:免权限读取与受限写入的契约对齐
flutter·harmonyos·鸿蒙
●VON2 天前
Flutter 鸿蒙 disk_space_2 1.0.13 使用实战:下载前检查磁盘空间
flutter·华为·harmonyos·鸿蒙