Telegram Group & Telegram Channel
ЗАДАЧА : Что выведет этот код?


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
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/rust_code/920
Create:
Last Update:

ЗАДАЧА : Что выведет этот код?


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

BY Rust


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/rust_code/920

View MORE
Open in Telegram


Rust Telegram | DID YOU KNOW?

Date: |

For some time, Mr. Durov and a few dozen staffers had no fixed headquarters, but rather traveled the world, setting up shop in one city after another, he told the Journal in 2016. The company now has its operational base in Dubai, though it says it doesn’t keep servers there.Mr. Durov maintains a yearslong friendship from his VK days with actor and tech investor Jared Leto, with whom he shares an ascetic lifestyle that eschews meat and alcohol.

Telegram hopes to raise $1bn with a convertible bond private placement

The super secure UAE-based Telegram messenger service, developed by Russian-born software icon Pavel Durov, is looking to raise $1bn through a bond placement to a limited number of investors from Russia, Europe, Asia and the Middle East, the Kommersant daily reported citing unnamed sources on February 18, 2021.The issue reportedly comprises exchange bonds that could be converted into equity in the messaging service that is currently 100% owned by Durov and his brother Nikolai.Kommersant reports that the price of the conversion would be at a 10% discount to a potential IPO should it happen within five years.The minimum bond placement is said to be set at $50mn, but could be lowered to $10mn. Five-year bonds could carry an annual coupon of 7-8%.

Rust from de


Telegram Rust
FROM USA