9
我已經看過Vec<_>
幾次了。例如:什麼是Vec <_>?
let a = "line1\r\nline2\nline3";
println!("{:?}", a.lines().collect::<Vec<_>>());
但是'不確定的臉'<_>
是什麼意思?
我已經習慣了在尖括號類型名,但可以說是什麼類型的? 我知道的下劃線的唯一含義是來自Python,作爲未使用變量的名稱。
我已經看過Vec<_>
幾次了。例如:什麼是Vec <_>?
let a = "line1\r\nline2\nline3";
println!("{:?}", a.lines().collect::<Vec<_>>());
但是'不確定的臉'<_>
是什麼意思?
我已經習慣了在尖括號類型名,但可以說是什麼類型的? 我知道的下劃線的唯一含義是來自Python,作爲未使用變量的名稱。
這意味着「鏽編譯器,推斷進入Vec
什麼類型」。它確實類似於Python中的未使用變量(以及Rust本身),因爲它表示一個類型的佔位符,就像它可以表示變量名的佔位符。
你可以找到解釋鏽病編程語言章約iterator consumers:
使用_會讓您提供部分提示:
let one_to_one_hundred = (1..101).collect::<Vec<_>>();
這是說 「收集成Vec<T>
,請,但推斷什麼T
是給我的。「_
是 有時稱爲「類型佔位符」出於這個原因。
謝謝!由於某些原因,文檔中的泛型章節沒有提及任何有關參數類型推斷的內容。 – Amomum
是否有任何特別關於'_'語法的文檔?我找不到任何。在解釋迭代器時,我只能找到使用它的地方。 – Lii
@Li我認爲這是目前唯一提到的地方。 github上記錄該功能的問題已經關閉,並將該段添加到迭代器部分:https://github.com/rust-lang/rust/pull/22293 –