如何在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或任何其他类。

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

这同样适用于ListS:[]是文字,也可以指定与尖括号类型:<E>[]


1显然还有许多其他用途{}()在其他上下文中。


以上是如何在Dart中创建空地图的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>