各位大佬,关于函数传参小弟有一点疑惑,Vec类型按道理来说应该是大小不确定的,在函数中做为参数时应该使用饮用类型 &Vec,但是我在函数中直接使用Vec类型做参数,是可以的,是什么原因呢?还请各位大佬不吝赐教。 例如: fn main(){ let nums = vec!["a".to_string(), "b".to_string()]; print_nums(nums); }
fn print_nums(nums: Vec) { println!("{:?}", nums); }
可以正常的输出a, b 按道理来讲不是应该在编译时提示报错nums大小无法确定吗?
1
共 2 条评论, 1 页
评论区
写评论感谢指点
--
👇
chirsz-ever:
Vec<T>
大小是确定的,它本质上是指向堆内存的指针+len+cap,[T]
才是不确定大小的类型。可看 https://cheats.rs/#general-purpose-heap-storage
Vec<T>
大小是确定的,它本质上是指向堆内存的指针+len+cap,[T]
才是不确定大小的类型。可看 https://cheats.rs/#general-purpose-heap-storage