TGViewer
Rust Rust @rust_code · 8.92K subscribers
Post #1104 3.68K
🦀 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
  • 🥰 1
  • 😡 1
More from @rust_code
  1. Sep 26, 2026Как создать пустой vector по-гениальному
  2. Sep 24, 2026🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus Rust предотв…
  3. Sep 24, 2026❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалист…
  4. Sep 24, 2026Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестиро…
  5. Sep 23, 2026photo post
  6. Sep 20, 2026Zero cost
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →