Macro format!
Thuộc phần Kiến thức nền tảng trong hành trình Rust của Coddy. Bài học 70 trên 75.
Trong Rust, macro format! cho phép bạn kết hợp văn bản với các biến theo cách dễ đọc và tùy chỉnh. Macro này tương tự như println!, nhưng thay vì in đầu ra ra bảng điều khiển, nó trả về một chuỗi đã được định dạng mà bạn có thể lưu vào một biến hoặc dùng trong các thao tác khác.
Cú pháp đơn giản nhất dùng các phần giữ chỗ không tên {}:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Đầu ra: Name: Alice, Age: 30Bạn có thể dùng trực tiếp tên biến trong các chỗ giữ chỗ:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Đầu ra: Name: Bob, Age: 25Bạn có thể chỉ định vị trí của các đối số bằng số:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Đầu ra: second first thirdBạn có thể kiểm soát cách định dạng giá trị bằng các chỉ định định dạng:
// Định dạng số
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"
// Đệm bằng số 0
let padded = format!("{:0>5}", "123");
// "00123"Thử thách
DễTạo một chương trình tạo mã bí mật từ tên và năm sinh theo đúng các quy tắc sau:
- Lấy chữ cái đầu tiên trong tên và chuyển thành chữ hoa
- Đảo ngược các chữ số của năm
- Bọc chữ cái đầu tiên bằng các ký hiệu "⭐"
- Thêm dấu "-" giữa chữ cái đã bọc và năm đã đảo ngược
Để đảo ngược một chuỗi, hãy dùng đoạn code sau: .to_string().chars().rev().collect::<String>()
Tự làm thử
use std::io;
fn main() {
let mut input_name = String::new();
let mut input_year = String::new();
io::stdin().read_line(&mut input_name).unwrap();
io::stdin().read_line(&mut input_year).unwrap();
let name = input_name.trim();
let year: i32 = input_year.trim().parse().unwrap();
// Viết code của bạn bên dưới
let secret_code =
println!("{}", secret_code);
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Kiến thức nền tảng
5Các toán tử phần 2
Các toán tử logic phần 1Các toán tử logic phần 2Ôn tập: logic đơn giảnCác toán tử logic phần 33Biến phần 2
Khai báo kiểu dữ liệuQuy ước đặt tênSuy luận kiểu dữ liệuÔn tập: Khởi tạo biếnÉp kiểu dữ liệu9Vòng lặp
Vòng lặp for qua chuỗiVòng lặp whileBreakContinueVòng lặp lồng nhauNhãn vòng lặpVòng lặp vô hạnÔn tập: Đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngMảng làm tham sốTruy cập phần tửChỉnh sửa mảngÔn tập: In mảng đẹp mắtTự luyện tập: Trình biên dịch Rust online