Na Steve Klabnik's writeup in the pre-Rust 1.0 documentation on the difference between String
and &str
, w Rust powinieneś używać &str
, chyba że naprawdę potrzebujesz własności ponad String
. Podobnie zaleca się używanie odniesień do plasterków (&[]
) zamiast Vec
s, chyba że naprawdę potrzebujesz własności nad Vec
.Konwertuj Vec <String> na plasterka & str w Rust?
mam Vec<String>
i chcę napisać funkcję, która używa tej sekwencji łańcuchów i nie wymaga posiadania nad Vec
lub String
przypadkach należy wziąć &[&str]
że funkcja? Jeśli tak, jaki jest najlepszy sposób odniesienia się do Vec<String>
do &[&str]
? A może to przesada?
Myślę, że jest to odpowiedź, której szukał OP, ponieważ pozwala na użycie plasterka bez niepotrzebnego przydziału. Takie podejście jest jeszcze bardziej przydatne przy akceptowaniu plasterka 'AsRef' - chcesz, aby funkcja akceptowała wszystkie '& [& str]', '& [String]', '& [Path]' i '& [PathBuf ], bez przydzielania nowej pamięci. –
user4815162342