openedu101 / rust-bootcamp-2024

Apache License 2.0
31 stars 11 forks source link

Phân biệt `&str` và `String` #6

Open CocDap opened 5 months ago

zrus commented 4 months ago
CocDap commented 4 months ago

image

Mình thêm 1 ý diễn giải cho cách giải thích của @zrus hey Như ở hình trên thì các bạn thấy rằng String sẽ được lưu bởi StackHeap -> Heap lưu nội dung của String, Stack lưu thông tin pointer, len (độ dài của nội dung), capacity ( độ dài của nội dung mà memory allocator có thể cung cấp ban đầu )

+&str dùng con trỏ , tham chiếu tới String đã được định nghĩa (nghĩa là đọc giá trị từ giá trị có sẵn thông qua con trỏ)

let s: String = String::from("hello world");

let hello: &str = &s[0..5];
let world: &str = &s[6..11];