Open CocDap opened 5 months ago
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 Stack
và Heap
-> 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];
String
là kiểu dữ liệu có giá trị được lưu trên heap vì giá trị có thể thay đổi trong suốt runtime.&str
là một con trỏ, tham chiếu đến mộtstr
- là một chuỗi byte UTF-8 được lưu trong bộ nhớ chương trình. Hoặc là con trỏ tham chiếu đếnString
.