Menu
CoddyTech

ハッシュのメソッド

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?はハッシュにペアが1つでもあるかどうかを確認します。

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

チャレンジ

簡単

入力を2行読み込みます:

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

1つ目の入力を解析してハッシュを作成し、学んだハッシュのメソッドを使って、次の情報をそれぞれ1行ずつ出力します:

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

たとえば、入力が name:Alice,age:25,city:Paris と age の場合、出力は次のようになります:

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

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

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

入力が status:active と status の場合、出力は次のようになります:

status
---
active
---
1
---
false
---
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: 以下にコードを書く
# hashのメソッドを使って次の処理を行う:
# 1. 各キーを出力する(1行に1つずつ)
# 2. 区切りとして"---"を出力する
# 3. 各値を出力する(1行に1つずつ)
# 4. 区切りとして"---"を出力する
# 5. キーと値のペアの数を出力する
# 6. 区切りとして"---"を出力する
# 7. hashが空の場合はtrue/falseを出力する
# 8. 区切りとして"---"を出力する
# 9. key_to_checkがhashに存在する場合はtrue/falseを出力する
quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ