Dart Null 判断 — ?. 和 ?? 操作符

Feb 9, 2021 阅读(134)

标签: Dart

在 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");
    }
}


MongoDB学习园