Visão Geral do Projeto
Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy. Lição 48 de 56.
Você vai construir um pequeno sistema de registros de estudantes como um conjunto de métodos que compartilham um único hash aninhado. Com uma estrutura diferente do Library Manager, sem loop de menu desta vez, apenas funções que você continuará expandindo.
O estado reside em um único hash de nível superior:
student_records = {}Cada entrada será indexada pelo nome, com um valor de hash contendo a idade, as notas e os cursos do estudante:
{
"Alice" => { age: 20, grades: [], courses: ["Math", "Physics"] }
}Cada lição adiciona um método que opera sobre este hash: add_student, add_grade, average_grade, list_by_course, top_students.
Desafio
InicianteInicialize um hash vazio chamado student_records no início do seu arquivo. Em seguida, imprima-o com inspect para que o teste veja:
{}Essa é toda a tarefa; esta lição apenas configura o estado compartilhado para tudo o que vem a seguir.
Experimente você mesmo
# TODO: inicialize student_records = {} e imprima-o com inspect
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 em Profundidade
Visão Geral dos Métodos de StringInterpolação de StringsPercorrendo StringsDividir e UnirRecapitulação - String Weaver4Blocos, Procs e Lambdas
O que é um Bloco?do..end vs ChavesA Palavra-chave yieldParâmetros de BlocoProcs e LambdasRevisão - Iterador Personalizado7Hashes - Parte 2
Hash.new com Valores PadrãoIterando sobre 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 / WhenRevisão - Prática com intervalos5Potência do Enumerable
Select e RejectEncadeando MapReduce / Injectcount, all?, any?, none?group_by e partitionsort_by, min_by, max_byRecapitulação - Pipeline de DadosPratique por conta própria: Compilador de Ruby online