# update method

V update (K key, V update(V value), { V ifAbsent() })

Updates the value for the provided `key`.

Returns the new value of the key.

If the key is present, invokes `update` with the current value and stores the new value in the map.

If the key is not present and `ifAbsent` is provided, calls `ifAbsent` and adds the key with the returned value to the map.

It's an error if the key is not present and `ifAbsent` is not provided.

## Implementation

    V update(K key, V update(V value), {V ifAbsent()}) {
      if (this.containsKey(key)) {
        return this[key] = update(this[key]);
      }
      if (ifAbsent != null) {
        return this[key] = ifAbsent();
      }
      throw new ArgumentError.value(key, "key", "Key not in map.");
    }