我已经见过Vec<_>几次了.例如:
let a = "line1\r\nline2\nline3";
println!("{:?}", a.lines().collect::<Vec<_>>());
Run Code Online (Sandbox Code Playgroud)
但那个"不确定的面孔" <_>是什么意思呢?
我已习惯尖括号中的类型名称,但这可以是什么类型?我所知道的下划线的唯一含义是来自Python作为未使用变量的名称.
Pao*_*lla 14
它的意思是"Rust编译器,推断出什么类型进入Vec".它确实类似于Python中的未使用变量(以及Rust本身),因为它代表一个类型的占位符,就像它可以表示变量名称的占位符一样.
您可以在The Rust Programming Language一章中找到有关迭代器使用者的解释:
使用_将允许您提供部分提示:
let one_to_one_hundred = (1..101).collect::<Vec<_>>();这说:"请收集Vec<T>一下,但要推断出T对我来说是什么."_因此,有时称为"类型占位符".
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |