Arrays 由于语法错误,无法返回固定大小的数组:应为7个可能的标记之一

Arrays 由于语法错误,无法返回固定大小的数组:应为7个可能的标记之一,arrays,rust,Arrays,Rust,我试图在不使用动态分配(例如使用Vec)的情况下从函数返回堆栈上的固定大小数组,但我无法这样做,因为编译错误会导致语法问题 代码 编译器输出 错误:应为“!”之一`(`,`+`,`:`,`;`,`src/main.rs:7:18) | 7 | fn test()->[i32:数组大小]{ |^应为7个可能的代币之一 固定大小的数组定义为;,而不是:,并且其大小类型为usize,而不是i32。您需要以下内容: const数组大小:usize=4; ... fn test()->[i32;数组大小

我试图在不使用动态分配(例如使用
Vec
)的情况下从函数返回堆栈上的固定大小数组,但我无法这样做,因为编译错误会导致语法问题

代码

编译器输出
错误:应为“!”之一`(`,`+`,`:`,`;`,`src/main.rs:7:18)
|
7 | fn test()->[i32:数组大小]{
|^应为7个可能的代币之一

固定大小的数组定义为
,而不是
,并且其大小类型为
usize
,而不是
i32
。您需要以下内容:

const数组大小:usize=4;
...
fn test()->[i32;数组大小]{
[1, 2, 3, 4]
}
const ARRAY_SIZE: i32 = 4;

fn main() {
    println!("this is {:?}", test());
}

fn test() -> [i32: ARRAY_SIZE] {
    [1, 2, 3, 4]
}