Mỗi Steve Klabnik's writeup in the pre-Rust 1.0 documentation on the difference between String
and &str
, trong Rust, bạn nên sử dụng &str
trừ khi bạn thực sự cần có quyền sở hữu trên String
. Tương tự, bạn nên sử dụng tham chiếu đến lát cắt (&[]
) thay vì Vec
s trừ khi bạn thực sự cần quyền sở hữu đối với số Vec
.Chuyển đổi Vec <String> thành một slice & str trong Rust?
Tôi có một Vec<String>
và tôi muốn viết một hàm có sử dụng chuỗi này của chuỗi và nó không cần phải sở hữu đối với Vec
hoặc String
trường hợp, chức năng đó nên &[&str]
? Nếu vậy, cách tốt nhất để tham khảo Vec<String>
là gì vào &[&str]
? Hay, liệu sự ép buộc này có quá mức không?
Tôi nghĩ đây là câu trả lời mà OP đang tìm kiếm, vì nó cho phép sử dụng slice mà không cần phân bổ không cần thiết. Cách tiếp cận này thậm chí còn hữu ích hơn khi chấp nhận một lát 'AsRef '- bạn muốn hàm chấp nhận tất cả' & [& str] ',' & [String] ',' & [Đường dẫn] 'và' & [PathBuf ] ', không phân bổ bộ nhớ mới. –
user4815162342