TGViewer
Rust Rust @rust_code · 8.92K subscribers
Post #920 3.47K
❔ ЗАДАЧА : Что выведет этот код?


use std::mem;

struct Tracer(&'static str);

impl Tracer {
fn new(name: &'static str) -> Tracer {
println!("Creating {}", name);
Tracer(name)
}
}

impl Drop for Tracer {
fn drop(&mut self) {
println!("Dropping {}", self.0);
}
}

struct Test {
a: Tracer,
b: Tracer,
}

fn main() {
let mut t = Test {
a: Tracer::new("A"),
b: Tracer::new("B"),
};

mem::replace(&mut t.a, Tracer::new("X"));

println!("Midpoint");
}


✅ ОТВЕТ:
```Creating A
Creating B
Creating X
Dropping A
Midpoint
Dropping B
Dropping X
```

1. Создание:
Tracer::new("A") → Creating A
2. mem::replace(...):
Creating X Dropping A
3.
println!("Midpoint"): Midpoint
4. Drop поля:
B, затем X

Этот код демонстрирует поведение Drop при замене полей структуры в Rust через std::mem::replace.


@rust_code
  • 👍 18
  • ❤ 2
  • 🥰 2
  • 🤔 2
  • 🖕 2
More from @rust_code
  1. Sep 28, 2026🦀 Qt открывает Rust полноценный путь к кроссплатформенному UI Qt представила Qt Bridge fo…
  2. Sep 26, 2026Как создать пустой vector по-гениальному
  3. Sep 24, 2026🦀 Как доказать, что Rust-код работает правильно: Amazon рассказывает о Verus Rust предотв…
  4. Sep 24, 2026❌В IT сейчас кризис джунов, но только не в кибербезе. ❗️Рынку не хватает 50 000 специалист…
  5. Sep 24, 2026Rust без аллокатора: `fff` снизил пиковое потребление памяти через `mmap` Во время тестиро…
  6. Sep 23, 2026photo post
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 →