Добавление книги
Часть раздела Логика и управление потоком путешествия по Ruby на Coddy — урок 29 из 56.
Добавьте пункт 1. Add Book в цикл меню. Когда пользователь выберет его, запросите название, автора и жанр книги, а затем добавьте новый хеш в массив library.
Каждая книга изначально является непрочитанной (read: false).
Задание
ЛегкоРасширьте цикл меню. Когда выбран вариант "1":
printприглашениеTitle:и считайте названиеprintAuthor:и считайте автораprintGenre:и считайте жанр- Добавьте хеш
{ title:, author:, genre:, read: false }вlibrary - Выведите
Book added!
Сохраните поведение для 5. Exit из предыдущего урока (выводит Goodbye! и прерывает цикл).
Для входных данных 1, The Hobbit, Tolkien, Fantasy, а затем 5, вывод заканчивается следующим образом:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Шпаргалка
Добавление книги в массив с использованием хеша с помощью push:
print "Title: "
title = gets.chomp
print "Author: "
author = gets.chomp
print "Genre: "
genre = gets.chomp
library.push({ title: title, author: author, genre: genre, read: false })
puts "Book added!"Попробуйте сами
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: обработать choice == "1", запросить название/автора/жанр,
# добавить хэш в library, вывести "Book added!"
end
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Строки в деталях
Обзор методов строкИнтерполяция строкИтерация по строкамSplit и JoinИтоги — String Weaver4Блоки, Proc и лямбды
Что такое блок?do..end против фигурных скобокКлючевое слово yieldПараметры блокаProc и лямбдыИтоги: пользовательский итератор7Хеши. Часть 2
Hash.new со значениями по умолчаниюИтерация по хешамВложенные хешиСлияние и преобразованиеИтоги — счетчик частоты10Проект — Учёт студентов
Обзор проектаДобавить студента2Диапазоны
Что такое диапазон?Методы диапазоновДиапазоны в Case / WhenПовторение — практика по диапазонам5Мощь Enumerable
Select и RejectЦепочки MapReduce / Injectcount, all?, any?, none?group_by и partitionsort_by, min_by, max_byИтоги — Data Pipeline8Продвинутые условные конструкции
Case с классами и RegexМножественные значения в whenТернарный операторОднострочные if / unlessПовторение: Классификатор оценок3Двумерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваИтерация по двумерным массивамРаспространенные 2D-паттерныИтоги: Операции с матрицами6Проект — Менеджер библиотеки
Обзор проектаДобавление книги