获得与前一个不同的随机数的惯用方法?

Idiomatic way to get a random number that is different from a previous one?

在 Rust 中有更好的方法吗?

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

不确定惯用语,但这可以避免循环:

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

取决于你想做什么,也许SliceRandom::choose_multiple or SliceRandom::shuffle