具有地图的空感知运算符

cre*_*not 9 dart

我对清单同样的问题,现在是Map

我想做什么

以下语法不是Dart,因为它无法编译

map?[key] ?? otherValue
Run Code Online (Sandbox Code Playgroud)

如果my map不是a Map而是a List,则看起来Günter在这里指出

list?.elementAt(index) ?? otherValue
Run Code Online (Sandbox Code Playgroud)

我在寻找什么

我知道这map?[key]是无效的语法,因此我正在搜索类似的东西elementAt,该东西适用于列表和地图。

map?.valueFor(key) ?? otherValue
Run Code Online (Sandbox Code Playgroud)

那显然还不存在。这个问题有解决方案,valueOf也可能是一个很好的解决方案。

Gün*_*uer 6

这有效:

(map ?? const {})[key] ?? otherValue;
Run Code Online (Sandbox Code Playgroud)

因为key将访问Map,它将总是返回null

  • 考虑使用 `const {}` 来避免每次都创建一个新映射,至少在类型允许的情况下是这样。 (3认同)