Rust 如何使用参数表索引生锈的阵列?

Rust 如何使用参数表索引生锈的阵列?,rust,Rust,我正在尝试创建一个函数,该函数将接受一个参数并将其用作数组的索引。rust不允许我这样做,因此我希望找到一种替代方法来实现相同的结果 虽然我不是100%的人,但我相信rust不允许我运行代码,因为它认为我使用的参数可能超出了阵列的镜头,为此,我尝试使用get()函数: array.get(foo.unwrap(); 但是,这仍然无法修复我当前的错误 复制错误的示例代码: fn示例(foo:u32){ 让mut数组:[u32;3]=[0,0,0]; 数组[foo]=9; } fn main(){

我正在尝试创建一个函数,该函数将接受一个参数并将其用作数组的索引。rust不允许我这样做,因此我希望找到一种替代方法来实现相同的结果

虽然我不是100%的人,但我相信rust不允许我运行代码,因为它认为我使用的参数可能超出了阵列的镜头,为此,我尝试使用
get()
函数:

array.get(foo.unwrap();
但是,这仍然无法修复我当前的错误

复制错误的示例代码:

fn示例(foo:u32){
让mut数组:[u32;3]=[0,0,0];
数组[foo]=9;
}
fn main(){
示例(1);
}
程序无法运行,编译器给了我错误

array[foo] = 9
^^^^^^^^^^^^^^ slice indices are of type `usize` or ranges of `usize`

这是我第一次写关于堆栈溢出的问题,所以如果我在什么地方弄乱了格式,很抱歉。

问题似乎在您的函数中,因为foo的类型是
foo:u32
您可以在编译器结果中看到,数组索引必须是
usize
类型,因此可以将其强制转换为
usize

array[foo as usize]=9
或者将函数头更改为

fn示例(foo:usize){

@usummon顺便说一句。在这里你必须小心
线程'main'在索引超出范围时惊慌失措:len是3,但索引是4'