使用默认Foo结构的数组初始化
这里的任何帮助将不胜感激。
下面的 rust 代码使用默认的 Foo 值填充数组,最多 N 个元素。我希望做同样的事情而不必显式编码 Foo 元素。对于较大的 N 值(1K 到 1M,甚至更多),这显然是不合理的。
我的主要目标是速度,所以我希望避免使用向量。
另外,我想避免不安全的代码块。如果我必须使用 unsafe,那么出于显而易见的原因,越简单越好。(我倾向于认为,如果需要不安全,那么改进 rust-lang 来改变这一点应该是一个非常高优先级的呼吁。因此,我希望可以轻松修改代码以利用这种假设的未来版本的 rust .)
再次,我真的很感谢这里有经验的输入。如果这确实是语言中的一个问题领域,我认为这里提供的答案将非常重要。如果有参考或链接,请分享!
struct Foo {
abc: String,
def: u32,
}
const N : usize = 2;
fn main() {
let foo: [Foo; N] = [
Foo{
abc: "default".to_string(),
def: 0,
},
Foo{
abc: "default".to_string(),
def: 0,
},
];
for bar in foo.iter() {
println!("bar.abc={}, bar.def={}", bar.abc, bar.def);
}
}