Thêm sách
Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 29 trên 56.
Thêm tùy chọn 1. Add Book vào vòng lặp menu. Khi người dùng chọn tùy chọn này, hãy yêu cầu nhập tiêu đề, tác giả và thể loại của sách, sau đó thêm một hash mới vào mảng library.
Mỗi cuốn sách ban đầu đều ở trạng thái chưa đọc (read: false).
Thử thách
DễMở rộng vòng lặp menu. Khi lựa chọn là "1":
printlời nhắcTitle:và đọc tiêu đềprintAuthor:và đọc tên tác giảprintGenre:và đọc thể loại- Đưa một hash
{ title:, author:, genre:, read: false }vàolibrary - In ra
Book added!
Giữ nguyên hành vi 5. Exit từ bài học trước (in ra Goodbye! rồi thoát vòng lặp).
Với các đầu vào 1, The Hobbit, Tolkien, Fantasy, rồi 5, đầu ra kết thúc bằng:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Tự làm thử
library = []
loop do
puts "--- Library Manager ---"
puts "1. Add Book"
puts "2. Search By Title"
puts "3. Filter By Genre"
puts "4. Mark As Read"
puts "5. Exit"
print "Choose an option: "
choice = gets.chomp
if choice == "5"
puts "Goodbye!"
break
end
# TODO: xử lý choice == "1", yêu cầu nhập tên sách/tác giả/thể loại,
# push một hash vào library, in ra "Book added!"
end
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 Logic và luồng xử lý
1Tìm hiểu sâu về chuỗi
Tổng quan về phương thức chuỗiNội suy chuỗiDuyệt qua chuỗiTách và nối chuỗiÔn tập: Đan chuỗi4Khối lệnh, Proc và lambda
Khối lệnh là gì?do..end và dấu ngoặc nhọnTừ khóa yieldTham số của khối lệnhProc và lambdaÔn tập: bộ lặp tùy chỉnh7Hash, phần 2
Hash.new với giá trị mặc địnhLặp qua HashHash lồng nhauGộp và chuyển đổiÔn tập: Bộ đếm tần suất10Dự án: Hồ sơ học sinh
Tổng quan dự ánThêm học sinh2Phạm vi
Phạm vi là gì?Các phương thức của phạm viPhạm vi trong case / whenÔn tập: luyện tập với phạm vi5Sức mạnh của Enumerable
select và rejectNối chuỗi mapreduce / injectcount, all?, any?, none?group_by và partitionsort_by, min_by, max_byÔn tập: quy trình dữ liệuTự luyện tập: Trình biên dịch Ruby online