putIfAbsent method

  1. @override
V? putIfAbsent(
  1. K key,
  2. V? ifAbsent()
)
override

Look up the value of key, or add a new entry if it isn't there.

If the key/value pair is new or changed then a MapUpdate is sent to attached streams.

Implementation

@override
V? putIfAbsent(K key, V? Function() ifAbsent) {
  final currentV = this[key];

  if (currentV != null) {
    return currentV;
  }

  final newV = ifAbsent();
  this[key] = newV;
  return newV;
}