Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpFtInr 119 of 288 menu
◀ ▶

Введение в трейты функций в Rust

Трейт функции описывает, как можно вызывать замыкание: только читать захват, менять его или забрать значение один раз. Компилятор подбирает трейт по тому, что замыкание делает с именами снаружи тела.

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

Когда замыкание меняет захваченную переменную, параметр функции тоже должен допускать изменение. Если замыкание отдает строку или другое значение наружу, повторное обращение уже невозможно: захват ушел вместе с первым результатом.

Дальше разберем много вызовов без смены захвата, изменение захвата, один вызов с отдачей значения, запись параметра с ограничением и то, как захват во владение влияет на выбор трейта. Этот захват сразу понадобится в потоках, когда замыкание отдают отдельной линии. В конце закрепим передачу замыкания в функцию на задачах.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить