Dart| Flutter :如何创建一个空的map

780 阅读2分钟

本教程展示了在Dart或Flutter中创建一个空Map的多种方法

How to create an empty Map in Dart and Flutter

空Map是一个缺乏键和值对元素的Map数据结构,Map的长度为零。

在Flutter中,API或服务方法可能会返回一个空Map,而不是null,以改善null的安全处理。

如何在Flutter或dart中创建一个空地图?

空地图可以通过多种方式创建。

  • 使用类型和括号

您可以在dart中使用type和括号() ,为任何类创建一个变量。

  Map map = Map();
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<dynamic, dynamic>

或者您可以使用new关键字为地图创建一个变量

  Map map = new Map();
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<dynamic, dynamic>

上面的代码创建了一个空地图,并返回Map.length 为0(0)

这是一个没有类型安全的空地图,默认类型是Map<dynamic, dynamic>

如何创建一个类型化的Map?

  Map<String,String> map = Map<String,String>();
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<String, String>
  • 使用空字面句法

创建一个变量并使用[] 语法将其分配为空字面。

  Map map = {};
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<dynamic, dynamic>
}

要创建一个类型化版本的空字面语法 这将创建一个没有元素的空数组类型化地图。

  Map<int,String> map = <int,String>{};
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<int, String>

或者你也可以使用不带类型的空字面,但变量的类型是类型化的。

  Map<int,String> map = {};
  print(map.length); //0
  print(map.runtimeType); //JsLinkedHashMap<dynamic, dynamic>

如何在flutter中创建一个对象的空地图

第四种方式,创建一个空的对象映射

下面是一个创建对象Map的多种方法的示例代码 创建一个雇员类,并使用Map空对象创建var emps = <int, Employee>[];

class Employee {
  final int id;
  final String name;
  final int salary;
  final DateTime joinDate;

  Employee(this.id, this.name, this.salary, this.joinDate);
}

void main() {
  Map<int, Employee> emps1 = new Map<int, Employee>();
  print(emps1.length); //0
  print(emps1.runtimeType); //JsLinkedHashMap<dynamic, dynamic>

  Map<int, Employee> emps2 = <int, Employee>{};
  print(emps2.length); //0
  print(emps2.runtimeType); //JsLinkedHashMap<int, Employee>

  Map<int, Employee> emps3 = {};
  print(emps3.length); //0
  print(emps3.runtimeType); //JsLinkedHashMap<int, Employee>
}

总结

本教程讲述了用int、string和object创建一个空Map的多种方法。