У словаря появился способ вставить значение или сразу вернуть ошибку

11.06.2026

У обоих упорядоченных и неупорядоченных словарей появились методы, которые либо вставляют значение по умолчанию, либо возвращают ошибку из замыкания.

Какая была запись

Стандартный способ — проверить наличие ключа, и если его нет, вставить значение по умолчанию. Если вставка может провалиться, то проверка и вставка должны быть одной операцией: иначе между ними есть окно, в котором другой поток вставит то же самое.

Метод, который возвращает ссылку на значение, решает эту задачу. Но когда вставка может завершиться ошибкой — например, значение нужно преобразовать и преобразование может не удаться, — подходящего метода не было. Приходилось брать занятую запись и применять преобразование к её значению, что требует дополнительных проверок на стороне вызывающего.

Что добавлено

Два метода: первый вызывает замыкание без аргумента, второй — с ключом, когда значение по умолчанию зависит от него. Оба возвращают результат, где ошибка — это ошибка из замыкания.

Оригинал

add or_try_* variants for HashMap and BTreeMap Entry APIs

Упоминаний: 1 · Просмотров: 3