【问题标题】:How to avoid [] called on null in Flutter如何避免 [] 在 Flutter 中调用 null
【发布时间】:2019-09-02 18:30:32
【问题描述】:

dart中有没有方法判断一个对象是否为null,然后决定获取['data']还是什么都不做?

这是错误信息:

在构建 Builder 时引发了以下 NoSuchMethodError: 在 null 上调用了方法“[]”。 接收方:空 尝试调用:

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    回答问题的最简单方法:

    final data = list != null ? list[0] : null;
    

    有一种速记方法可以对任何对象的属性和方法执行相同的操作:a?.ba?.b() 将首先对 a 进行空检查,然后分别获取 b 或调用 b,如果 @987654328 @ 为 null 返回 null。

    这种简写不能仅用于属性和方法的下标。

    【讨论】:

    • 已更正。谢谢你告诉我。
    • final data = list != null ? list[0] : null];final data = list?.first;相比,所谓的“最简单的方式”实际上并不简单
    • 问题不仅仅是获得第一个项目。它可以是任何一个。
    【解决方案2】:

    首选Null 感知索引运算符:

    var item = yourList?[0] ?? defaultValue;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      相关资源
      最近更新 更多