У Option появился reduce — свернуть итератор в значение, если условие выполнилось один раз
27.08.2025У Option появился метод reduce: он сворачивает итератор в единственное значение, если условие совпало ровно один раз. Если ни разу — результат отсутствует; если больше одного — возвращается None.
Зачем это нужно
Случай «найти элемент, который должен быть ровно один» выражается в коде одинаково: посчитать совпадения и сравнить с единицей. На практике это пишется руками каждый раз, и почти всегда одинаково.
Смысл метода не в экономии строк, а в том, что ненулевой результат и «ровно один» — это разные вещи, и второе нетрудно спутать с первым. Метод делает проверку явной.
Классический случай — необязательные поля
Структура с необязательными полями разбирается из строки запроса, и каждое поле должно встретиться не более одного раза. Наивная реализация проверяет только отсутствие дублей; reduce проверяет и присутствие тоже.
Оригинал
add Option::reduce
Упоминаний: 1 · Просмотров: 3