Adicionar Livro
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 29 de 56.
Adicione a opção 1. Add Book ao loop do menu. Quando o usuário a escolher, solicite o título, autor e gênero do livro, e então faça o push de um novo hash no array library.
Todo livro começa como não lido (read: false).
Desafio
FácilEstenda o loop do menu. Quando a escolha for "1":
printa solicitaçãoTitle:e leia o títuloprintAuthor:e leia o autorprintGenre:e leia o gênero- Adicione um hash
{ title:, author:, genre:, read: false }emlibrary - Imprima
Book added!
Mantenha o comportamento de 5. Exit da lição anterior (imprime Goodbye! e interrompe o loop).
Para as entradas 1, The Hobbit, Tolkien, Fantasy, e depois 5, a saída termina com:
Choose an option: Title: Author: Genre: Book added!
--- Library Manager ---
...
Choose an option: Goodbye!Folha de consulta
Adicionando um livro a um array usando um hash com 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!"Experimente você mesmo
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: lidar com choice == "1", solicitar título/autor/gênero,
# inserir um hash na biblioteca, imprimir "Book added!"
end
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica e Fluxo
1Strings a Fundo
Visão Geral de Métodos de StringInterpolação de StringsIterando sobre StringsSplit e JoinRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA palavra-chave yieldParâmetros de BlocoProcs e LambdasRecapitulação - Iterador Customizado7Hashes Parte 2
Hash.new com Valores PadrãoIterando em HashesHashes AninhadosMesclando e TransformandoRecapitulação - Contador de Frequência10Projeto - Registros de Alunos
Visão Geral do ProjetoAdicionar Aluno2Intervalos
O que é um Intervalo?Métodos de IntervaloIntervalos em Case / WhenRecapitulação - Prática com Intervalos5O Poder do Enumerable
Select e RejectEncadeando o MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Data Pipeline3Arrays 2D
Fundamentos de Arrays 2DAcessando Elementos 2DIterando sobre Arrays 2DPadrões 2D ComunsRecapitulação - Operações com Matrizes6Projeto - Gerenciador de Biblioteca
Visão Geral do ProjetoAdicionar Livro