Métodos de Hash
Parte da seção Fundamentos do Journey de Ruby da Coddy — lição 76 de 88.
O Ruby fornece vários métodos integrados que ajudam você a inspecionar e trabalhar com hashes de forma mais eficaz. Esses métodos oferecem acesso rápido a informações sobre o conteúdo do seu hash.
O método keys retorna um array de todas as chaves no hash:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Saída: name, age, cityDa mesma forma, o método values retorna um array de todos os valores:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Saída: Alice, 25, ParisPara verificar se uma chave específica existe, use key? ou seu alias has_key?:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Saída: true
puts person.key?("country") # Saída: falseO método length informa quantos pares chave-valor o hash contém:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Saída: 3Finalmente, empty? verifica se o hash possui algum par:
data = {}
puts data.empty? # Saída: trueDesafio
FácilLeia duas linhas de entrada:
- Um hash representado como pares chave-valor separados por vírgula no formato
key:value(ex:name:Alice,age:25,city:Paris) - Uma chave para verificar a existência (string)
Analise 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:
- Imprima cada chave no hash (uma por linha)
- Imprima
---como um separador - Imprima cada valor no hash (uma por linha)
- Imprima
---como um separador - Imprima o número de pares chave-valor no hash
- Imprima
---como um separador - Imprima
trueoufalseindicando se o hash está vazio - Imprima
---como um separador - Imprima
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 deve ser:
name
age
city
---
Alice
25
Paris
---
3
---
false
---
trueSe as entradas forem product:Laptop,price:999 e stock, a saída deve ser:
product
price
---
Laptop
999
---
2
---
false
---
falseSe as entradas forem status:active e status, a saída deve ser:
status
---
active
---
1
---
false
---
trueFolha de consulta
Ruby fornece métodos integrados para inspecionar e trabalhar com hashes:
O método keys retorna um array de todas as chaves:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys # Saídas: name, age, cityO método values retorna um array de todos os valores:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values # Saídas: Alice, 25, ParisO método key? (ou seu alias has_key?) verifica se uma chave específica existe:
person = {"name" => "Alice", "age" => 25}
puts person.key?("name") # Saídas: true
puts person.key?("country") # Saídas: falseO método length retorna o número de pares chave-valor:
person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length # Saídas: 3O método empty? verifica se o hash possui algum par:
data = {}
puts data.empty? # Saídas: trueExperimente você mesmo
# Ler a entrada
input_string = gets.chomp
key_to_check = gets.chomp
# Analisar 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 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 o hash estiver vazio
# 8. Imprimir "---" como separador
# 9. Imprimir true/false se key_to_check existir no 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 Programa