如何在 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 = {};
备注:
这是我记忆中的语法:
{}
是一个字面量,()
执行一个调用1。 T{}
是非法语法,T()
调用了 T
的未命名构造函数。 T
是什么并不重要,无论是 Map<K, V>
还是 String
或任何其他 class.
{}
是一个字面量,但什么样的字面量呢?是 Set
还是 Map
?要区分它们,您应该表达类型。表示泛型类型的方法是将类型放在尖括号中:<K, V>{}
表示 Map<K, V>
,<E>{}
表示 Set<E>
.
List
s也是一样:[]
是字面量,可以用尖括号指定类型:<E>[]
.
1 显然还有.
我总是忘记如何在 Dart 中创建空地图。这不起作用:
final myMap = Map<String, dynamic>{};
没关系:
final myMap = Map<String, dynamic>();
但我收到一条警告,要求我尽可能使用集合文字。
我在下面添加我的答案,以便下次我忘记时它会在这里。
您可以使用地图字面量创建一个空 Map
:
{}
但是,如果类型未知,它将默认为 Map<dynamic, dynamic>
,这会破坏类型安全。为了指定局部变量的类型,你可以这样做:
final myMap = <String, int>{};
而对于非局部变量,可以使用类型注解形式:
Map<String, int> myMap = {};
备注:
这是我记忆中的语法:
{}
是一个字面量,()
执行一个调用1。 T{}
是非法语法,T()
调用了 T
的未命名构造函数。 T
是什么并不重要,无论是 Map<K, V>
还是 String
或任何其他 class.
{}
是一个字面量,但什么样的字面量呢?是 Set
还是 Map
?要区分它们,您应该表达类型。表示泛型类型的方法是将类型放在尖括号中:<K, V>{}
表示 Map<K, V>
,<E>{}
表示 Set<E>
.
List
s也是一样:[]
是字面量,可以用尖括号指定类型:<E>[]
.
1 显然还有