You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中Vec::new()如何确定元素类型?能否显式指定类型?

关于Vec::new()如何确定元素类型

Rust 具备完备的类型推断能力,你第一种写法里已经给vec变量显式标注了类型为Vec<u32>,编译器会自动将Vec::new()的返回值类型匹配为你标注的类型,不需要在调用new()的时候额外传类型参数。
如果后续你往空向量里插入了确定类型的元素,编译器也能自动推导元素类型,甚至不需要你给变量标注类型,示例如下:

let mut vec = Vec::new();
vec.push(1u32); // 插入u32类型元素,编译器自动推断vec是Vec<u32>类型

关于显式指定元素类型的正确写法

你写的let mut vec = Vec<u32>::new();编译失败是Rust的语法解析规则导致的:编译器会把Vec后面的<解析成小于运算符,而不是泛型参数的左尖括号。
如果要显式指定泛型参数,需要用Rust特有的turbofish语法,在泛型参数前加::,正确写法如下:

let mut vec = Vec::<u32>::new();

上述写法可以正常编译运行。

内容的提问来源于stack exchange,提问作者ardabro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:57:02