根據Steve Klabnik's writeup in the pre-Rust 1.0 documentation on the difference between String
and &str
,在Rust中,您應該使用&str
,除非您確實需要擁有String
以上的所有權。同樣,除非您確實需要對Vec
的所有權,否則建議使用對切片的引用(&[]
)而不是Vec
。將Vec <String>轉換成Rust中的一段&str?
我有一個Vec<String>
,我想寫一個使用字符串的這個序列的功能,它不需要在Vec
或String
實例所有權,應該是功能拍攝&[&str]
?如果是這樣,將Vec<String>
轉換爲&[&str]
的最佳方法是什麼?或者,這種強制矯枉過正?
我認爲這是OP尋找的答案,因爲它允許在沒有不必要分配的情況下使用切片。這個方法在接受一片'AsRef'時更加有用 - 你希望這個函數接受所有的&&&&&&'','&[String]','&[Path]'和'&[PathBuf ]',而不分配新的內存。 –
user4815162342