Ôn tập: Tạo Struct Book
Thuộc phần Logic và luồng chương trình trong hành trình Rust của Coddy. Bài học 26 trên 66.
Thử thách
DễBạn sẽ nhận được bốn đầu vào: tên sách, tên tác giả, năm xuất bản (dưới dạng số nguyên) và số trang (dưới dạng số nguyên). Định nghĩa một struct Book có bốn trường: title kiểu String, author kiểu String, year kiểu i32 và pages kiểu i32. Tạo một instance của struct này bằng các giá trị đầu vào và in thông tin sách.
Yêu cầu:
- Định nghĩa một struct
Bookcó các trường:title: String,author: String,year: i32vàpages: i32 - Đọc đầu vào thứ nhất làm tên sách
- Đọc đầu vào thứ hai làm tên tác giả
- Đọc đầu vào thứ ba và chuyển đổi thành
i32để làm năm xuất bản - Đọc đầu vào thứ tư và chuyển đổi thành
i32để làm số trang - Tạo một instance của struct
Bookvới các giá trị này - In thông tin sách theo đúng định dạng bên dưới
Đầu vào:
- Dòng thứ nhất: Tên sách (ví dụ:
The Rust Programming Language) - Dòng thứ hai: Tên tác giả (ví dụ:
Steve Klabnik) - Dòng thứ ba: Năm xuất bản dưới dạng số nguyên (ví dụ:
2018) - Dòng thứ tư: Số trang dưới dạng số nguyên (ví dụ:
552)
Đầu ra:
- Dòng thứ nhất:
Book: [title] - Dòng thứ hai:
Author: [author] - Dòng thứ ba:
Year: [year] - Dòng thứ tư:
Pages: [pages]
Tự làm thử
use std::io;
// TODO: Định nghĩa struct Book tại đây với các trường: title, author, year và pages
fn main() {
// Đọc tên sách
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// Đọc tên tác giả
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// Đọc năm xuất bản
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// Đọc số trang
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: Tạo một instance của struct Book từ các giá trị đầu vào
// TODO: In ra thông tin sách theo định dạng yêu cầu
}Tất cả bài học trong Logic và luồng chương trình
1Luồng điều khiển nâng cao
Biểu thức 'match'Khớp nhiều giá trịKhớp các phạm viBiểu thức 'if let'Vòng lặp dưới dạng biểu thứcÔn tập: Trình phân tích cú pháp lệnh đơn giản4Nhóm dữ liệu bằng Struct
Struct là gì?Tổng quan về StructTruy cập các trường của StructStruct có thể thay đổiStruct làm tham số cho hàmStruct dạng tupleÔn tập: Tạo Struct Book2Giới thiệu về vector
Vector là gì?Tạo vectorThêm phần tử bằng pushTruy cập phần tử trong vectorLặp qua vectorLặp có thể thay đổiXóa phần tửÔn tập: Bộ theo dõi điểm số cơ bản5Cặp khóa-giá trị với bảng băm
Bảng băm là gì?Tạo bảng bămThêm cặp khóa-giá trịTruy cập giá trịDuyệt qua bảng bămCập nhật giá trịXóa một cặpÔn tập: Bộ đếm từ8Dự án: Quản lý kho hàng đơn giản
Thiết lập dự ánThêm mặt hàngKiểm tra hàng tồn khoBán mặt hàngKết hợp tất cả11Thử thách cuối cùng
Ôn tập: Các mục duy nhấtÔn tập: Trình xác thực hồ sơ người dùngÔn tập: Tổng hợp điểm3Danh sách việc cần làm trên dòng lệnh
Thiết lập dự ánThêm một việcXem tất cả việcXóa một việcCode hoàn chỉnh6Xử lý giá trị vắng mặt với 'Option'
'Option' là gì?Dùng 'match' với 'Option'is_some() và is_none()Lấy giá trị từ 'Option'expectCung cấp giá trị mặc định: unwrap_orÔn tập: tìm một phần tử9Lát cắt chuỗi và hơn thế nữa
String và &strTạo lát cắt chuỗiLát cắt làm tham số hàmCác lát cắt khácÔn tập: Tìm từ đầu tiênTự luyện tập: Trình biên dịch Rust online