🦀 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
36
👍 30
🔥 8
6 102 3.6K

Обсуждение 6

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram