【问题标题】:Idiomatic way to get a random number that is different from a previous one?获取与前一个不同的随机数的惯用方法?
【发布时间】:2019-05-31 13:56:48
【问题描述】:

在 Rust 中是否有更好的方法来做到这一点?

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

【问题讨论】:

    标签: random rust idioms


    【解决方案1】:

    不确定是否是惯用的,但这可以避免循环:

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

    【讨论】:

      【解决方案2】:

      取决于你想做什么,可能是SliceRandom::choose_multipleSliceRandom::shuffle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 2014-11-17
        • 1970-01-01
        相关资源
        最近更新 更多