【问题标题】:Is there a more idiomatic way to initialize an array with random numbers than a for loop?有没有比 for 循环更习惯用随机数初始化数组的方法?
【发布时间】:2018-08-29 12:11:01
【问题描述】:

在 Rust 中有没有一种惯用的初始化数组的方法。我正在创建一个随机数数组,并想知道是否有一种更惯用的方式,然后只是做一个 for 循环。我当前的代码运行良好,但看起来更像是 C 而不是正确的 Rust:

let mut my_array: [u64; 8] = [0; 8];
for i in 0..my_array.len() {
    my_array[i] = some_function();
}

【问题讨论】:

  • 您可能会发现这个Q & A 很有帮助。基本上你可以使用列表推导来初始化你的数组。
  • @OnorioCatenacci:Vec 和数组之间有相当大的区别,所以Vec 可能不合适。
  • 谢谢,我已经编辑好了。
  • @MatthieuM。好点子。抱歉——只是想提供帮助。
  • @OnorioCatenacci:哦!请不要误会,我很高兴您正在尝试提供帮助,并且 OP 问题的详细说明以至于很难知道 Vec 是否合适。跨度>

标签: rust


【解决方案1】:

Various sized arrays可以直接随机生成:

use rand; // 0.7.3

fn main() {
    let my_array: [u64; 8] = rand::random();
    println!("{:?}", my_array);
}

目前,这仅适用于大小为 0 到 32(含)的数组。除此之外,您还想查看相关问题:

【讨论】:

    猜你喜欢
    • 2021-01-12
    • 1970-01-01
    • 2011-04-09
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多