operator []= method

  1. @override
void operator []=(
  1. String key,
  2. dynamic value
)
override

Associates the key with the given value.

If the key was already in the map, its associated value is changed. Otherwise the key/value pair is added to the map.

Implementation

@override
void operator []=(String key, dynamic value) {
  _map[key] ??= RecursiveMap();

  switch (value) {
    case String():
      (_map[key] ??= RecursiveMap())[value] = null;
    case Iterable<String>():
      var k = key;
      for (final v in value) {
        (_map[k] ??= RecursiveMap())[v] = null;
        k = v;
      }
    case null:
      _map[key] ??= RecursiveMap();
    default:
      throw Exception('Invalid value type');
  }
}