flutter final 和const的区别

384 阅读1分钟

共同点:

  • 声明的类型可省略
  • 初始化后不能再赋值
  • 不能和var同时使用
例如:
    const tmp = "arrom";// 相当于const String tmp = “arrom”
    final var tmp1 ="test";//会报错

区别:

  • 类级别常量,使用static const
  • const可使用其他const常量的值来初始化其值
  • 使用const赋值声明,const可省略
  • 可以更改非final,非const变量的值,即使曾经具有const值
  • const导致的不可变性是可以传递的
  • 相同的const常量不会再内存中重复创建
  • const需要是编译时常量
例如:
    const  a = 100;
    const  b = 200;
    const c =  a * b;//如果将a的声明变成var 则c会报错
    
    const list = const [];//const 可以省略
    
    const List ls = [1,2,4];
    const list ls2 = [1,2,4];
    
    print(identical(ls,ls2));//返回true
    
    const dt  = DtaTime.now();