Dart的Optional运算符是一个枚举,类似于Swift的枚举?

时间:2019-06-21 01:46:49

标签: swift dart

我想知道Dart可选类Dart之间有什么区别?运算符和Swift可选项。我知道它们都有助于避免空引用,而且Dart具有Optional.dart类,该类的作用似乎与?相似。

Swift Optional只是一个BASICALLY(基本上我在强调)确定它是否为null(空)的枚举。 Dart的选项与Swift的选项有何不同?它们可以类似使用吗?在Dart中,Optional类和使用?有什么区别。操作员? Dart Classes Swift Optionals Dart Optional Class

飞镖:

void main() {
    NewClass nc = NewClass();
    nc.p = 3;
    print(nc.p); //prints 3
    nc = null;
    if(nc?.num != null) {
        nc.num = 4; //never entered
    }
    print(nc.num); // Uncaught exception:Cannot read property 
                   // 'get$num' of null
}

class NewClass {
    var p;
    int num;
}

1 个答案:

答案 0 :(得分:1)

Dart没有属于该语言的Optional类。您链接到的程序包是第三方程序包。

Dart具有 null运算符(例如????=?....?)。它们专门用于null值;没有特殊类型。

Swift具有可选的 types ;它使您可以声明变量的类型为Int?,这意味着它可以为null或为Int

在Dart中,任何变量都可以存储空指针。请注意,这里有ongoing work to add non-nullable types to Dart,因此最终应该会改变。