Идиоматический способ получить случайное число, отличное от предыдущего? - PullRequest
0 голосов
/ 05 января 2019

Есть ли лучший способ сделать это в Rust?

let mut current_index = rng.gen_range(0, 5);
while current_index == previous_index {
    current_index = rng.gen_range(0, 5);
}

Ответы [ 2 ]

0 голосов
/ 06 января 2019

В зависимости от того, что вы хотите сделать, возможно SliceRandom::choose_multiple или SliceRandom::shuffle.

0 голосов
/ 05 января 2019

Не уверен насчет идиоматики, но это позволит избежать цикла:

let current_index = (previous_index + rng.gen_range(1, 5)) % 5;
...