变量

const 和 final

final和const都是用于定义常量的, 也就是定义之后值都不可以修改。

可空变量

下面的代码在空安全下是有错误的,因为 int 类型的变量不能为 null。

可以通过在类型后添加 ? 来表示该类型可空。

int? a = null;

null 在未初始化的变量里都是默认值,以上代码可以简写为:

int? a;

避空运算符

  1. ??= 仅当该变量为空值时才为其赋值:

    int? a; // = null
    a ??= 3;
    print(a); // <-- 打印 3
    

    当a不为空是,无法赋值

    a ??= 5;
    print(a); // <-- 仍然打印 3.
    
  2. ?? 如果该运算符左边的表达式返回的是空值,则会计算并返回右边的表达式。

    print(1 ?? 3); // <-- 打印 1
    print(null ?? 12); // <-- 打印 12
    

推荐阅读

Flutter(三)之搞定Dart(一)