Menu
Coddy logo textTech

ハッシュのメソッド

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 76/88。

Rubyには、ハッシュをより効果的に検査し、操作するのに役立つ組み込みメソッドがいくつか用意されています。これらのメソッドを使用すると、ハッシュの内容に関する情報に素早くアクセスできます。

keys メソッドは、ハッシュ内のすべてのキーを含む配列を返します:

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

puts person.keys  # 出力: name, age, city

同様に、values メソッドはすべての値の配列を返します:

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

puts person.values  # 出力: Alice, 25, Paris

特定のキーが存在するかどうかを確認するには、key? またはそのエイリアスである has_key? を使用します:

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

puts person.key?("name")     # 出力: true
puts person.key?("country")  # 出力: false

lengthメソッドは、ハッシュに含まれるキーと値のペアの数を返します:

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

puts person.length  # 出力: 3

最後に、empty? はハッシュにペアが一つでもあるかどうかを確認します:

data = {}
puts data.empty?  # 出力: true
challenge icon

チャレンジ

簡単

2行の入力を読み取ります:

  1. key:value 形式のカンマ区切りキー・値ペアで表されるハッシュ(例:name:Alice,age:25,city:Paris
  2. 存在を確認するためのキー(文字列)

最初の入力をパースしてハッシュを作成し、学習したハッシュメソッドを使用して、以下の情報をそれぞれ新しい行に出力してください:

  1. ハッシュ内の各キーを出力する(1行に1つ)
  2. セパレータとして --- を出力する
  3. ハッシュ内の各値を出力する(1行に1つ)
  4. セパレータとして --- を出力する
  5. ハッシュ内のキー・値ペアの数を出力する
  6. セパレータとして --- を出力する
  7. ハッシュが空かどうかを示す true または false を出力する
  8. セパレータとして --- を出力する
  9. 2番目の入力のキーがハッシュ内に存在するかどうかを示す true または false を出力する

例えば、入力が name:Alice,age:25,city:Parisage の場合、出力は以下のようになります:

name
age
city
---
Alice
25
Paris
---
3
---
false
---
true

入力が product:Laptop,price:999stock の場合、出力は以下のようになります:

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

入力が status:activestatus の場合、出力は以下のようになります:

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

チートシート

Rubyには、ハッシュを検査したり操作したりするための組み込みメソッドが用意されています:

keysメソッドは、すべてのキーの配列を返します:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.keys  # 出力: name, age, city

valuesメソッドは、すべての値の配列を返します:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.values  # 出力: Alice, 25, Paris

key?メソッド(またはそのエイリアスであるhas_key?)は、特定のキーが存在するかどうかを確認します:

person = {"name" => "Alice", "age" => 25}
puts person.key?("name")     # 出力: true
puts person.key?("country")  # 出力: false

lengthメソッドは、キーと値のペアの数を返します:

person = {"name" => "Alice", "age" => 25, "city" => "Paris"}
puts person.length  # 出力: 3

empty?メソッドは、ハッシュにペアが含まれているかどうかを確認します:

data = {}
puts data.empty?  # 出力: true

自分で試してみよう

# 入力を読み込む
input_string = gets.chomp
key_to_check = gets.chomp

# 入力文字列を解析してハッシュを作成する
hash = {}
input_string.split(',').each do |pair|
  key, value = pair.split(':')
  hash[key] = value
end

# TODO: 以下にコードを記述してください
# ハッシュメソッドを使用して以下を行ってください:
# 1. 各キーを出力する(1行に1つ)
# 2. セパレータとして "---" を出力する
# 3. 各値を出力する(1行に1つ)
# 4. セパレータとして "---" を出力する
# 5. キーと値のペアの数を出力する
# 6. セパレータとして "---" を出力する
# 7. ハッシュが空かどうかに応じて true/false を出力する
# 8. セパレータとして "---" を出力する
# 9. key_to_check がハッシュ内に存在するかどうかに応じて true/false を出力する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン