Menu
Coddy logo textTech

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, city

Da 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, Paris

Para 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: false

O método length informa quantos pares chave-valor o hash contém:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}

puts person.length  # Saída: 3

Finalmente, empty? verifica se o hash possui algum par:

data = {}
puts data.empty?  # Saída: true
challenge icon

Desafio

Fácil

Leia duas linhas de entrada:

  1. Um hash representado como pares chave-valor separados por vírgula no formato key:value (ex: name:Alice,age:25,city:Paris)
  2. 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:

  1. Imprima cada chave no hash (uma por linha)
  2. Imprima --- como um separador
  3. Imprima cada valor no hash (uma por linha)
  4. Imprima --- como um separador
  5. Imprima o número de pares chave-valor no hash
  6. Imprima --- como um separador
  7. Imprima true ou false indicando se o hash está vazio
  8. Imprima --- como um separador
  9. Imprima true ou false indicando 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
---
true

Se as entradas forem product:Laptop,price:999 e stock, a saída deve ser:

product
price
---
Laptop
999
---
2
---
false
---
false

Se as entradas forem status:active e status, a saída deve ser:

status
---
active
---
1
---
false
---
true

Folha 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, city

O método values retorna um array de todos os valores:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values  # Saídas: Alice, 25, Paris

O 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: false

O método length retorna o número de pares chave-valor:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length  # Saídas: 3

O método empty? verifica se o hash possui algum par:

data = {}
puts data.empty?  # Saídas: true

Experimente 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 hash
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos