在 dart 中一切皆对象,所以如果没有将变量初始化,那么它的默认值为 null。
?. 条件成员访问符
var config = null; // 此写法 config 为null 时不会 NoSuchMethodError: The getter 'enable' was called on null. 异常。 print(config?.enable); // null
?? null赋值操作符
当 ??= 左侧值为 null时才会将 ??= 右侧的值赋予左侧。
void main() { // 在 dart 中一切皆对象,所以如果没有将变量初始化,那么它的默认值为 null。 var config; // 此写法 config 为null 时不会 NoSuchMethodError: The getter 'enable' was called on null. 异常。 // ?. 条件成员访问符, 在这里如果 config 为 null则 config?.enable 值为null,否则值为 config.enable。 print(config?.enable); // null // ?? null赋值操作符,当 ??= 左侧值为 null时才会将 ??= 右侧的值赋予左侧。 var enable = config?.enable ?? false; print(enable); // false if (enable) { print("config.enable == true"); } else { print("config.enable == false"); } }