Dart final与const区别

2022-02-13  本文已影响0人  周_0717
  1. 使用范围:
    final只能修饰变量;const可以修饰变量、常量构造函数、变量值(放在“=”右边);
    1.1. const可以修饰引用变量时,必须调用常量构造函数;
    1.2. const修饰构造函数时,称为常量构造函数,该类的所有成员都必须使用final修饰;即该类的对象创建之后不可修改属性。
    1.3. const修饰变量值时,它意味着对象的整个状态编译时完全确定,并且完全不可变;
var a=1;
var list=const  {a,2,3,4};//报错,集合元素必須是编译时常量
list[1]=66;//报错,不允许对集合做任何改变

2.变量初始化时机:
final变量在第一次使用时被初始化,可在声明时赋值也可在构造函数中赋值。
const变量是在编译时初始化,必须在声明时赋值,且赋值内容必须在编译时确定。赋值内容将作为常量保存,之后声明相同内容的const变量将会直接复用。

final time = DateTime.now();//不会报错
const time = DateTime.now();//将会报错

2022-02-13

上一篇 下一篇

猜你喜欢

热点阅读