• 可空(加 ?):在类型后面加个问号,变量才能接受 null。
nullableName = 'Rose';       // ✅ 也允许
  • ?.(条件成员访问):如果对象为 null,直接返回 null,不会调用后续方法,避免崩溃。
String? str = null;
print(str?.length); // 输出 null(不会报错)
  • ??(空值合并):如果左边为 null,就使用右边的默认值。
String? str = null;
String result = str ?? '默认值'; // result 为 '默认值'
  • ??=(空赋值):只有当变量为 null 时,才给它赋值。
String? str = null;
str ??= '赋值'; // str 变为 '赋值'
  • 百分百确定某个可空变量在当前场景下不是 null
String? maybeName = getName(); // 假设你知道它一定返回非空
int length = maybeName!.length; // 用了 !,如果为 null 则会抛出运行时异常