如何使用 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);
我在 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);