Dart 中的 Object.assign 相当于什么?

Igo*_*gor 5 javascript dictionary dart

在 javascript 中,如果有 Object.assign,我们可以像这样使用它们:

var a = {name:'car', value: 2}
var b = {name:'car', value: 65, speed: 100}
var c = {name:'car', value: 5}
var result = {}
Object.assign(result, a)
Object.assign(result, b)
Object.assign(result, c)
// result == {name: "car", value: 5, speed: 100}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 Dart 中做到这一点?

lrn*_*lrn 4

您在 JavaScript 中所做的是将对象视为映射。如果您使用映射,您可以在 Dart 中执行相同的操作。

var a = {'name': 'car', 'value': 2}
var b = {'name':'car', 'value': 65, 'speed': 100}
var c = {'name':'car', 'value': 5}
var result = {}
result.addAll(a);
result.addAll(b);
result.addAll(c);
print(result); // {"name": "car", "value": 5, "speed": 100}
Run Code Online (Sandbox Code Playgroud)

如果你想对 Dart对象做类似的事情,你必须使用反射(dart:mirrors),这并不是在所有平台上都可用,并且你必须自己编写代码,没有通用函数可以做你想要的事情(基于分配变量)关于Map数据)。