一个Map值可以引用同一Map中的另一个值吗?

时间:2019-06-21 19:36:47

标签: dictionary dart

Dart Map中的值可以引用同一Map中的另一个值吗?

例如

Map<String, String> map = {
    'data': {
        'default': 'some default value',
        'value1':       'some value',
        'value2':       'some other value',
        'value3':       map['data']['default'] // Is this possible??
    }
};

如果我像上面那样做,我会得到

The following CyclicInitializationError was thrown building MainPage:
  Reading static variable 'map' during its initialization

我当然可以将默认值创建为一个单独的变量,但我不希望这样做。是否有一种巧妙的方法来实现这样的目标?

1 个答案:

答案 0 :(得分:0)

dartpad上尝试

void main() {
  Map<String, Map<String, String>> map = {
    'data': {
      'default': 'some default value',
      'value1': 'some value',
      'value2': 'some other value',
    }
  };

  map['data']['value3'] = map['data']['default'];

  print(map['data']);
}