如何在 Dart 中创建一个空地图

How to create an empty Map in Dart

我总是忘记如何在 Dart 中创建空地图。这不起作用:

final myMap = Map<String, dynamic>{};

没关系:

final myMap = Map<String, dynamic>();

但我收到一条警告,要求我尽可能使用集合文字。

我在下面添加我的答案,以便下次我忘记时它会在这里。

您可以使用地图字面量创建一个空 Map

{}

但是,如果类型未知,它将默认为 Map<dynamic, dynamic>,这会破坏类型安全。为了指定局部变量的类型,你可以这样做:

final myMap = <String, int>{};

而对于非局部变量,可以使用类型注解形式:

Map<String, int> myMap = {};

备注:

这是我记忆中的语法:

{}是一个字面量,()执行一个调用1T{} 是非法语法,T() 调用了 T 的未命名构造函数。 T 是什么并不重要,无论是 Map<K, V> 还是 String 或任何其他 class.

{}是一个字面量,但什么样的字面量呢?是 Set 还是 Map?要区分它们,您应该表达类型。表示泛型类型的方法是将类型放在尖括号中:<K, V>{} 表示 Map<K, V><E>{} 表示 Set<E>.

Lists也是一样:[]是字面量,可以用尖括号指定类型:<E>[].


1 显然还有.