首页 > 解决方案 > 为什么对向量的引用在需要引用数组的函数中起作用

问题描述

我有一个 i32 的向量。我创建了 2 个函数

  1. fn1 接受对 i32 数组的引用
  2. fn2 接受对 i32 向量的引用

我无法理解为什么此代码适用于 fn1。编译器不应该抛出不匹配类型错误,因为我们正在传递对向量的引用,而 fn1 需要对数组的引用吗?

fn main() {
    let my_vec = vec![1,2,3];
    fn1(&my_vec);
    fn2(&my_vec);
    
}

fn fn1(number_vec: &[i32]){
    dbg!(number_vec);
}


fn fn2(number_vec: &Vec<i32>){
    dbg!(number_vec);
}

我觉得锈一定会自动改变类型。如果是这种情况,请解释它是如何完成的。

标签: rust

解决方案


推荐阅读