Вызовите более одной функции в руку матча в Rust - PullRequest
0 голосов
/ 20 апреля 2020

В настоящее время у меня есть выражение соответствия в виде

match ball.side {
    Side::Left => x(), 
    Side::Right => y(), 
}

Но мне нужно что-то вроде

match ball.side {
    Side::Left => x(),a(), 
    Side::Right => y(), b(), 
}

И, конечно, это не компилируется, но как я мог заставить этот вид последовательности работать? Я знаю, что мог бы также просто работать с , если заявлением, но мне любопытно, как это можно точно решить с помощью match.

1 Ответ

5 голосов
/ 20 апреля 2020

Последовательность операторов в блоке:

match ball.side {
    Side::Left => {
        x();
        a();
    }
    Side::Right => {
        y();
        b();
    }
}

Обратите внимание, что правая сторона плеча match должна быть выражением , а блоки являются выражениями (что может дать значение) в Rust.

...