🦀 Rust совет: когда использовать &self, &mut self, self и mut self — на реальном примере
Этот сниппет отлично показывает разные модели владения при методах:
// читает, не меняя
fn len(&self) -> usize { … }
// изменяет объект на месте
fn push(&mut self, b: u8) { … }
// забирает владение — после вызова исходный объект больше недоступен
fn into_vec(self) -> Vec<u8> { … }
// builder-стиль: забирает владение, внутри mut, возвращает обновлённый объект
fn with_extra(mut self, extra: Vec<u8>) -> Self { … }
Коротко:
- &self → читаем
- &mut self → изменяем
- self → потребляем объект
- mut self → потребляем + модифицируем и возвращаем (удобно для fluent API)
Понимание этих четырёх форм - ключ к грамотной архитектуре в Rust.
#rust #tip #junior
@rust_code
Обсуждение 6
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram