【问题标题】:How to add item to list with Null Safety如何使用 Null Safety 将项目添加到列表
【发布时间】:2021-05-20 07:08:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: dart dart-null-safety


    【解决方案1】:

    您的testlist 仍然为空,因为您将其定义为可为空且未对其进行初始化。

    因此,在向您的testlist 添加条目时,同时调用testlist?.add('null test');。如果testlist 为空,将执行检查。如果为 null,则将跳过对 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);
    

    【讨论】:

      【解决方案2】:

      因为你还没有给testlist赋值,所以它是空的并且add方法没有被执行。

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

      你必须以某种方式初始化它,例如List&lt;String&gt;? testlist = [];,但这取决于你最终将如何使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-14
        • 2018-04-04
        • 2020-08-01
        • 1970-01-01
        • 2022-12-19
        • 2017-08-26
        • 2019-11-26
        相关资源
        最近更新 更多