Vec
Vec
là kiểu dữ liệu chuẩn dạng mảng có thể tự thay đổi kích thước:
Vec
implement Deref<Target = [T]>
, nên tất cả các hàm của slice đều có thể được gọi trên một biến kiểu Vec
.
Speaker Notes
This slide should take about 10 minutes.
- Tương tự
String
vàHashMap
,Vec
là một kiểu dữ liệu sử dụng để lưu trữ nhiều phần tử. Dữ liệu được lưu trữ trên bộ nhớ heap, nên không cần phải biết trước kích thước của dữ liệu tại thời điểm compile. Kích thước củaVec
có thể thay đổi tại trong quá trình chạy. Vec<T>
cũng là một kiểu dữ liệu generic, nhưng trong đa số trường hợp ta không cần phải chỉ rõ raT
. Hệ thống nội suy kiểu dữ liệu của Rust sẽ tự động xác địnhT
trong lần đầu tiên gọi hàmpush
.- Ta có thể sử dụng macro
vec![...]
thay vì gọi hàmVec::new()
để khởi tạo mộtVec
.vec![...]
còn có thể được dùng để khởi tạo vector với một số phần tử cho trước. - Để truy cập phần tử của một vector ta có thể sử dụng
[
]
, nhưng nếu phần tử được truy cập cập nằm ngoài phạm vi của vector, chương trình sẽ panic. Trong trường hợp này, ta có thể sử dụng hàmget
để trả về mộtOption
. Hàmpop
sẽ loại bỏ phần tử cuối cùng của vector. - Chúng ta sẽ đi sâu vào chi tiết về slice trong ngày 3. Bây giờ, học viên chỉ cần biết rằng một biến kiểu
Vec
cũng có thể sử dụng tất cả các hàm của slice.