Generics 什么是Vec<_>;?

Generics 什么是Vec<_>;?,generics,rust,Generics,Rust,我已经看过几次了。例如: let a = "line1\r\nline2\nline3"; println!("{:?}", a.lines().collect::<Vec<_>>()); let a=“line1\r\nline2\nline3”; 普林顿!(“{:?}”,a.lines().collect::()); 但那张“不确定的脸”是什么意思 我习惯了尖括号中的类型名,但那是什么类型? 我所知道的下划线的唯一含义来自Python,它是一个未使用变量的名称。它

我已经看过几次了。例如:

let a = "line1\r\nline2\nline3";
println!("{:?}", a.lines().collect::<Vec<_>>());
let a=“line1\r\nline2\nline3”;
普林顿!(“{:?}”,a.lines().collect::());
但那张“不确定的脸”是什么意思

我习惯了尖括号中的类型名,但那是什么类型? 我所知道的下划线的唯一含义来自Python,它是一个未使用变量的名称。

它的意思是“Rust编译器,推断进入
Vec
”的类型。它确实类似于Python中未使用的变量(以及Rust本身),因为它表示类型的占位符,就像它可以表示变量名的占位符一样

您可以在Rust编程语言一章中找到有关以下内容的说明:

使用u可以提供部分提示:

让一到一百=(1..101)这是说
“请收集到
Vec
,但是推断
T
对我来说是什么。” 为此,有时称为“类型占位符”


谢谢出于某种原因,文档中的泛型一章没有提到任何关于参数类型推断的内容。是否有专门关于
\uuu
语法的文档?我找不到。我只找到解释迭代器时使用的文本。@li我想这是现在唯一提到的地方。github上记录该功能的问题已经解决,将该段落添加到迭代器部分: