お題
- (1)曜日を表す英語と、日本語との対応を表すハッシュwdayを定義せよ
- (2)ハッシュのメソッドを使い、ハッシュwdayのペアの数を数えよ
- (3)eachメソッドと(1)のハッシュwdayを使って、以下のような文字列を出力せよ
「sunday」は日曜日のことです。 「monday」は月曜日のことです。
回答
(1)
wday = { sunday: '日曜日', monday: '月曜日', tuesday: '火曜日', wednesday: '水曜日', thursday: '木曜日', friday: '金曜日', saturday: '土曜日' }
(2)
p wday.keys.size
=> 7
(3)
wday.each do |key, val| puts "「#{key}」は#{val}のことです。" end => 「sunday」は日曜日のことです。 「monday」は月曜日のことです。 「tuesday」は火曜日のことです。 「wednesday」は水曜日のことです。 「thursday」は木曜日のことです。 「friday」は金曜日のことです。 「saturday」は土曜日のことです。
説明
今回はキーをシンボルで定義してみた。
sunday: '日曜日'
といったように、:
を使うとシンボルでキーを登録できる。
ペア数を数えるということは、キーの値を数えればいいということなので、keysメソッドでキーだけを取り出し、sizeメソッドで要素数を取り出した。
また、ary#each do |キー、値|
でキーと値をそれぞれ取り出せる。
学び
普通にHash#sizeだけでよかった。
p wday.keys.size
→ p wday.size
=> 7