operator [] method

  1. @override
T? operator [](
  1. Object? key
)
override

The value for the given key, or null if key is not in the map.

Some maps allow null as a value. For those maps, a lookup using this operator cannot distinguish between a key not being in the map, and the key being there with a null value. Methods like containsKey or putIfAbsent can be used if the distinction is important.

Implementation

@override
T? operator [](Object? key) {
  if (key is! String) {
    throw TypeError();
  }

  T? found;

  void visitor(String k, T? v) {
    if (k == key) {
      found = v;
    }
  }

  visitKey(root, key, '', visitor);
  return found;
}