Table of contents
Open Table of contents
1. Phân biệt &str và String
&str: Là loại văn bản cố định, thường nằm trong mã nguồn (string literals). Nó có tốc độ cực nhanh nhưng không thể thay đổi kích thước.String: Là loại văn bản có thể co giãn, thường được lưu trên Heap. Bạn có thể thêm, bớt hoặc thay đổi nội dung của nó lúc chương trình đang chạy.
2. Cách tạo một String
Bạn có thể tạo một String từ một chuỗi cố định (&str) bằng hai cách phổ biến:
let s1 = String::from("Chào bạn");
let s2 = "Chào bạn".to_string();
3. Thay đổi nội dung chuỗi
Để thay đổi chuỗi, bạn phải khai báo biến với từ khóa mut.
push_str(): Thêm một đoạn văn bản vào cuối.push(): Thêm duy nhất 1 ký tự vào cuối.
let mut message = String::from("Hello");
message.push_str(" World"); // "Hello World"
message.push('!'); // "Hello World!"
4. Nối chuỗi văn bản
Cách dễ dàng và sạch sẽ nhất để kết hợp nhiều chuỗi là dùng macro format!. Cách này rất giống với cách bạn in dữ liệu bằng println!.
let s1 = String::from("Học");
let s2 = String::from("Rust");
let result = format!("{} {} thật vui!", s1, s2);
println!("{}", result); // Kết quả: Học Rust thật vui!
5. Độ dài chuỗi
Bạn có thể dùng phương thức .len() để lấy độ dài của chuỗi. Lưu ý rằng độ dài này được tính theo số byte (UTF-8), không nhất thiết là số lượng ký tự đối với các ngôn ngữ có dấu.
let name = String::from("Tuan");
println!("Độ dài: {}", name.len()); // 4
Lời kết Bài 13
Xử lý chuỗi trong Rust có vẻ khắt khe hơn các ngôn ngữ khác, nhưng chính sự khắt khe đó đảm bảo chương trình của bạn luôn an toàn với bộ nhớ. Đây cũng là bài viết cuối cùng trong Series Tự học Rust Cơ bản (dựa trên lộ trình W3Schools).
Hy vọng series này đã giúp anh Tuấn và các bạn có một nền móng vững chắc để tiếp tục chinh phục những kiến thức nâng cao hơn của Rust. Chúc các bạn có những trải nghiệm lập trình tuyệt vời! 🦀✨