如何用单个值初始化一个大数组?

我正在尝试在 Rust 中实现 Atkin 的筛子。这需要用 初始化一个数组false。互联网上的语法不再有效。

fn main() {
    const limit:usize = 1000000000;
    let mut sieve:[bool; limit] = [false];
}

我希望这会创建一个limit填充大小的数组false,而不是

rustc“期望一个固定大小为 1000000000 个元素的数组,找到一个有 1 个元素的数组”。

回答

[false]是一个只有一个元素的数组,即它的类型是[bool; 1]

你想要的是[false; limit]而不是[false]

fn main() {
    const limit: usize = 1_000_000_000;
    let mut sieve = [false; limit];
}

这里不需要类型注释[bool; limit],因为它可以被推断出来。


以上是如何用单个值初始化一个大数组?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>