【发布时间】:2019-09-02 18:30:32
【问题描述】:
dart中有没有方法判断一个对象是否为null,然后决定获取['data']还是什么都不做?
这是错误信息:
在构建 Builder 时引发了以下 NoSuchMethodError: 在 null 上调用了方法“[]”。 接收方:空 尝试调用:
【问题讨论】:
dart中有没有方法判断一个对象是否为null,然后决定获取['data']还是什么都不做?
这是错误信息:
在构建 Builder 时引发了以下 NoSuchMethodError: 在 null 上调用了方法“[]”。 接收方:空 尝试调用:
【问题讨论】:
回答问题的最简单方法:
final data = list != null ? list[0] : null;
有一种速记方法可以对任何对象的属性和方法执行相同的操作:a?.b 或 a?.b() 将首先对 a 进行空检查,然后分别获取 b 或调用 b,如果 @987654328 @ 为 null 返回 null。
这种简写不能仅用于属性和方法的下标。
【讨论】:
final data = list != null ? list[0] : null]; 与final data = list?.first;相比,所谓的“最简单的方式”实际上并不简单
首选Null 感知索引运算符:
var item = yourList?[0] ?? defaultValue;
【讨论】: