如何使用 Null Safety 将项目添加到列表

How to add item to list with Null Safety

我在 dart 中使用空安全时遇到问题。

void main() {
  List<String>? testlist;
  testlist?.add('null test');
  print(testlist);
}

为什么打印出来的testlist还是空的?

因为你还没有给testlist赋值,所以是null,add方法没有执行

add 方法只是将一个条目“添加”到列表中,但如果列表为空,则无法向其中添加任何内容。

您必须以某种方式对其进行初始化,例如 List<String>? testlist = [];,但这取决于您最终将如何使用它。

你的 testlist 仍然是 null,因为你定义它为 nullable 并且没有初始化它。

因此,在调用 testlist?.add('null test'); 时向 testlist 添加条目。如果 testlist 为空,将执行检查。如果为空,将跳过对 add 的调用。在您的情况下,它始终为空。

因此,在您的代码行 testlist?.add('null test'); 中可视化空条件运算符。也可以写成:

List<String>? testlist;

// testlist?.add('null test');  
if(testlist != null) {
    testlist.add('null test');
}
  
print(testlist);

如果你想添加字符串,你必须初始化你的 testlist:

List<String>? testlist = [];

或者,如果可能的话,您可以避免可空并将您的代码编写为:

List<String> testlist = [];
testlist.add('null test');
print(testlist);