初期値を持ったハッシュを作りたい時

競プロで2回連続間違えて、レートを落としてショックな、私です。

さて、今回は初期値を持ったハッシュを作りたい時のやり方についてです。

結論、Hash.new(‘初期値’)を使います。

コード

irb(main):019> hash = Hash.new(0) # 初期値を0でhashを作るようにする
=> {}
irb(main):020> hash[:num] += 2 # 初期値の0にそのまま値を足してくれる!便利!
=> 2
irb(main):021> hash
=> {:num=>2}
irb(main):022> hash[:string] += 'string' # 初期値が0なので、文字列は足せないとのerror
(irb):22:in `+': String can't be coerced into Integer (TypeError)
	from (irb):22:in `

競プロでは初期値が入ってくれていると嬉しいパターン多いです。

では!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA