Cho thú cưng ăn
Thuộc phần Lập trình hướng đối tượng trong hành trình Rust của Coddy. Bài học 20 trên 61.
Thử thách
DễGiờ đây, thú cưng của bạn đã có mặt, đã đến lúc cho nó khả năng ăn! Ở bước này, bạn sẽ thêm một phương thức feed để chăm sóc cơn đói của thú cưng.
Dựa trên module pet.rs hiện có, hãy thêm phương thức feed để giảm mức độ đói của thú cưng. Khi được cho ăn, mức độ đói của thú cưng sẽ giảm 30, nhưng không bao giờ thấp hơn 0. Sau khi cho ăn, phương thức cần in ra thông báo cho biết thú cưng đã thưởng thức bữa ăn.
Bạn cũng cần một phương thức getter hunger để kiểm tra mức độ đói của thú cưng từ bên ngoài module.
Trong main.rs, bạn sẽ đọc tên thú cưng và giá trị đói ban đầu. Hãy tạo thú cưng, đặt mức độ đói ban đầu, cho thú cưng ăn một lần, rồi hiển thị mức độ đói đã cập nhật.
Đầu ra cần theo định dạng sau:
{name} enjoyed the meal!
Hunger: {hunger_level}Ví dụ, nếu đầu vào là:
Buddy
50Đầu ra sẽ là:
Buddy enjoyed the meal!
Hunger: 20Và nếu mức độ đói ban đầu là 20, việc cho ăn sẽ đưa mức đói về 0 (không phải số âm):
Buddy enjoyed the meal!
Hunger: 0Bạn cần thêm phương thức set_hunger để khởi tạo mức độ đói cho mục đích kiểm thử, vì hàm khởi tạo new mặc định đặt mức độ đói là 0.
Tự làm thử
mod pet;
use pet::Pet;
fn main() {
let mut name = String::new();
std::io::stdin().read_line(&mut name).expect("Failed to read line");
let name = name.trim().to_string();
let my_pet = Pet::new(name);
println!("Pet name: {}", my_pet.name());
}Tất cả bài học trong Lập trình hướng đối tượng
1Phương thức và hành vi
Nhập môn khối triển khaiTham số selfPhương thức có thể thay đổiHàm liên kếtNhiều khối triển khaiNối chuỗi phương thứcÔn tập: thao tác với hình chữ nhật4Dự án: Thú cưng ảo
Định nghĩa thú cưngCho thú cưng ăn7Các trait tiêu chuẩn
Trait DebugTrait DisplayClone và CopyCác trait so sánh bằngÔn tập: Điểm có thể in ra2Tính đóng gói và module
Kiến thức cơ bản về moduleTừ khóa publicTrường riêng tưHàm lấy giá trịHàm thiết lập giá trịÔn tập: tủ khóa an toàn5Kiểu tổng quát
Cấu trúc tổng quátPhương thức tổng quátNhiều kiểu tổng quátHàm tổng quátÔn tập: điểm tọa độTự luyện tập: Trình biên dịch Rust online