Métodos de Hash
Parte da seção Fundamentos do Journey de Ruby da Coddy. Lição 76 de 88.
Ruby oferece vários métodos integrados que ajudam você a inspecionar e trabalhar com hashes com mais eficiência. Esses métodos dão acesso rápido a informações sobre o conteúdo do seu hash.
O método keys retorna um array com todas as chaves do hash:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Exibe name, age e city, cada um em uma linha separadaDa mesma forma, o método values retorna um array com todos os valores:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Exibe Alice, 25 e Paris, cada um em sua própria linhaPara verificar se uma chave específica existe, use key? ou seu alias has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Exibe: true
puts person.key?("country") # Exibe: falseO método length informa quantos pares de chave-valor o hash contém:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Exibe: 3Por fim, empty? verifica se o hash tem algum par:
data = {}
puts data.empty? # Exibe: trueDesafio
FácilLeia duas linhas de entrada:
- Um hash representado como pares de chave-valor separados por vírgulas no formato
key:value(por exemplo,name:Alice,age:25,city:Paris) - Uma chave cuja existência deve ser verificada (string)
Interprete a primeira entrada para criar um hash e, em seguida, use os métodos de hash que você aprendeu para exibir as seguintes informações, cada uma em sua própria linha:
- Exiba cada chave do hash (uma por linha)
- Exiba
---como separador - Exiba cada valor do hash (um por linha)
- Exiba
---como separador - Exiba o número de pares de chave-valor do hash
- Exiba
---como separador - Exiba
trueoufalseindicando se o hash está vazio - Exiba
---como separador - Exiba
trueoufalseindicando se a chave da segunda entrada existe no hash
Por exemplo, se as entradas forem name:Alice,age:25,city:Paris e age, a saída deverá ser:
name
age
city
---
Alice
25
Paris
---
3
---
false
---
trueSe as entradas forem product:Laptop,price:999 e stock, a saída deverá ser:
product
price
---
Laptop
999
---
2
---
false
---
falseSe as entradas forem status:active e status, a saída deverá ser:
status
---
active
---
1
---
false
---
trueExperimente você mesmo
# Leia a entrada
input_string = gets.chomp
key_to_check = gets.chomp
# Analise a string de entrada para criar um hash
hash = {}
input_string.split(',').each do |pair|
key, value = pair.split(':')
hash[key] = value
end
# TODO: Escreva seu código abaixo
# Use os métodos de hash para:
# 1. Imprimir cada chave (uma por linha)
# 2. Imprimir "---" como separador
# 3. Imprimir cada valor (um por linha)
# 4. Imprimir "---" como separador
# 5. Imprimir o número de pares chave-valor
# 6. Imprimir "---" como separador
# 7. Imprimir true/false se hash estiver vazio
# 8. Imprimir "---" como separador
# 9. Imprima true/false se key_to_check existir em hashEsta 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âmica3Operadores 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 ProgramaPratique por conta própria: Compilador de Ruby online