Rust-головоломки


#1

https://dtolnay.github.io/rust-quiz/


#2

Залипательно. Главное, что бы никто не взял эти вопросы как план для собеседования. :slight_smile:


#3

Сурово. Смог сам всего на пару вопросов ответить :slight_smile:


#4

То же самое. Но думаю что в реальной жизни это мало пригодится - обычно так не пишешь.


#5

Ну черт его знает, на штуки вроде https://dtolnay.github.io/rust-quiz/24 вполне реально в обычном коде напороться и сидеть недоумевать.

код упомянутого примера
fn main() {
    let x: u8 = 1;
    const K: u8 = 2;

    macro_rules! m {
        () => {
            print!("{}{}", x, K);
        };
    }

    {
        let x: u8 = 3;
        const K: u8 = 4;

        m!();
    }
}

#6

Я больше удилён этим. Почему это

In fact s does not get moved and the output is 21.

#7

О, эта штука и в телеграме на днях вынесла кому-то мозг.

Потому что _ это не имя переменной/привязки, а часть синтаксиса сопоставлений (как ref, mut, .. и т.п.), которая как раз и значит что-то типа “я не хочу что бы это значение привязывалось, просто пропустим его”.