Tôi đã xem qua tài liệu và cho đến nay tôi chưa thấy chức năng được tích hợp để di chuyển an toàn một mục ra khỏi Vec
.Được xây dựng trong * cách an toàn * để di chuyển ra khỏi Vec <T>?
Vec::get
tồn tại, nhưng điều đó chỉ mượn. Vec::remove
tồn tại, và trong khi đó di chuyển ra khỏi vectơ, nó cũng hoảng loạn nếu chỉ mục nằm ngoài phạm vi. Vì vậy, tôi có hai câu hỏi:
- Cách dự định/tốt để di chuyển một mục từ một véc tơ là gì?
remove(&mut self, index: usize) -> T
panics nếu nằm ngoài phạm vi phủ sóng. Điều gì có thể là lý do để hoảng sợ? Tại sao nó không được triển khai nhưremove(&mut self, index: usize) -> Option<T>
?
Hy vọng câu hỏi này không phải là quá đầu cơ .. Tôi đang tìm kiếm sự hiểu biết, không cố gắng suy đoán. – FizzBazer
Theo kinh nghiệm của tôi, hiếm khi có chỉ số vào một véc tơ mà bạn không biết liệu chúng có hợp lệ hay không. Panicking phù hợp với trường hợp phổ biến đó, nơi một chỉ mục không hợp lệ đại diện cho một lỗi. Đối với trường hợp không phổ biến, bạn chỉ cần xác thực chỉ mục trước khi sử dụng nó. – CodesInChaos