Acessando Elementos de um Hash
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 74 de 88.
Agora que você sabe como criar hashes, você precisa recuperar os valores armazenados dentro deles. Ao contrário dos arrays, onde você usa índices numéricos, os hashes usam chaves para acessar seus valores.
Coloque a chave dentro de colchetes para obter seu valor correspondente:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # Saída: Alice
puts person["age"] # Saída: 25A chave deve corresponder exatamente ao que você usou ao criar o hash. Se você tentar acessar uma chave que não existe, o Ruby retornará nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # Saída: (nada - nil)Você também pode usar o método fetch, que permite fornecer um valor padrão quando a chave está ausente:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # Saída: Alice
puts person.fetch("country", "Unknown") # Saída: UnknownIsso é útil quando você deseja lidar com chaves ausentes de forma elegante em vez de receber nil.
Desafio
FácilLeia quatro linhas de entrada:
- Um nome de produto (string)
- Um preço (float)
- Uma quantidade em estoque (inteiro)
- Uma chave para busca (string)
Crie um hash chamado product com os seguintes pares chave-valor:
"name"mapeado para o nome do produto"price"mapeado para o preço (como um float)"stock"mapeado para a quantidade (como um inteiro)
Em seguida, use o método fetch para recuperar o valor da chave fornecida na quarta entrada. Se a chave não existir, use "Not found" como o valor padrão. Imprima o resultado.
Por exemplo, se as entradas forem Laptop, 999.99, 15, e price, a saída deve ser:
999.99Se as entradas forem Keyboard, 49.99, 100, e name, a saída deve ser:
KeyboardSe as entradas forem Mouse, 29.99, 50, e color, a saída deve ser:
Not foundSe as entradas forem Monitor, 299.0, 8, e stock, a saída deve ser:
8Folha de consulta
Para acessar valores em um hash, use a chave dentro de colchetes:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person["name"] # Saída: Alice
puts person["age"] # Saída: 25Se uma chave não existir, o Ruby retorna nil:
person = {"name" => "Alice", "age" => 25}
puts person["country"] # Saída: (nada - nil)Use o método fetch para fornecer um valor padrão para chaves ausentes:
person = {"name" => "Alice"}
puts person.fetch("name", "Unknown") # Saída: Alice
puts person.fetch("country", "Unknown") # Saída: UnknownExperimente você mesmo
# Ler entrada
product_name = gets.chomp
price = gets.chomp.to_f
quantity = gets.chomp.to_i
key_to_lookup = gets.chomp
# TODO: Escreva seu código abaixo
# Crie um hash chamado 'product' com as chaves "name", "price" e "stock"
# Em seguida, use o método fetch para recuperar o valor de key_to_lookup
# Use "Not found" como o valor padrão se a chave não existir
# Exibir o resultado
puts resultEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operadores Lógicos Parte 47Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada do Usuário10FizzBuzz com um Toque Especial
Visão Geral do JogoO Método FizzBuzz2Variáveis e Tipos de Dados
Números e VariáveisTipo de Dado StringTipo de Dado BooleanTipo de Dado SymbolVerificando Tipos de DadosConvenções de NomenclaturaRecapitulação - Criação de Variáveis5Tomada de Decisão
Instrução IfIf - ElseRecapitulação - Calculadora SimplesIf - Else AninhadoInstrução Unless8Laços de Repetição
Loop For com IntervalosLoop WhileBreakNextRecapitulação - FatorialLoop TimesLoop UntilLoops AninhadosRecapitulação - Entrada Dinâmica11Arrays
Criando ArraysAcessando Elementos de um ArrayModificando ArraysMétodos de ArrayRecapitulação - Array de ProdutosRecapitulação - Array InvertidoAtalhos de Array14Hashes
Criando HashesAcessando Elementos de um HashModificando HashesMétodos de HashRecapitulação - Hash de ProdutoSímbolos como Chaves de Hash3Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosRecapitulação - Matemática SimplesOperadores de Comparação6IO Básico
Saída com putsSaída com print e pSaída com VariáveisEntrada com getsMétodo chompConversão de TiposRecapitulação - Calculadora de IdadeRecapitulação - Verdadeiro ou Falso9Métodos
Definindo um MétodoParâmetros de MétodoValores de RetornoRecapitulação - Método SigmaRecapitulação - Método de ValidaçãoValores de Parâmetro Padrão15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa