Rust 如何使用单个值初始化大型数组?

Rust 如何使用单个值初始化大型数组?,rust,Rust,我正试图在铁锈中使用阿特金的筛子。这需要使用false初始化数组。互联网上的语法不再适用 fn main() { const limit:usize = 1000000000; let mut sieve:[bool; limit] = [false]; } 我希望这会创建一个大小为limit的数组,并填充false rustc“需要一个固定大小为100000000个元素的数组,找到一个固定大小为1个元素的数组” [false]是一个包含一个元素的数组,即其类型为[bool;1

我正试图在铁锈中使用阿特金的筛子。这需要使用
false
初始化数组。互联网上的语法不再适用

fn main() {
    const limit:usize = 1000000000;
    let mut sieve:[bool; limit] = [false];
}
我希望这会创建一个大小为
limit
的数组,并填充
false

rustc“需要一个固定大小为100000000个元素的数组,找到一个固定大小为1个元素的数组”


[false]
是一个包含一个元素的数组,即其类型为
[bool;1]

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

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

这里不需要类型注释,因为它可以被推断。

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

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

fn main() {
    const limit: usize = 1_000_000_000;
    let mut sieve = [false; limit];
}
这里不需要类型注释
[bool;limit]
,因为它可以推断出来