#188 Ruby技術者認定試験問題(delete)
こんばんは、hiroです😋
今週は1日の睡眠時間が少し少なめだったこともあり、今日は2回寝落ちしてしまいましたw
こんなに寝るのは久しぶりだったので、「まだこんなに寝れるのか」と少しビックリしています😎
睡眠+寝落ちした合計時間は約13時間w
そして今に至ります。
恐らく夜は眠れないため、力尽きるまでインプットしたいと思います!
問題
次のコードを実行するとどうなりますか
h = {a: 100, b: 200}
h.delete(:a)
p h
回答
{:b=>200}と表示される
解説
Hash#delete(:key)
レシーバーからkeyの項目を削除する。
このメソッドは破壊的メソッド。
keyに対応する要素が存在しない場合はnilを返す。
与えられたブロックは、keyにマッチする要素がなかったときに評価されて、その結果を返す。
例
h = {ab: "some", cd: "all"}
p h.delete(:ab) 削除される対象は"some"
p h.delete(:ef) 削除される対象が存在しないためnilとなる
p h.delete(:ef){|key|"#{key}Nothing"} "ef Nothing"
今回の問題のケースはハッシュ内に" :a "が存在するため、" a: 100 "を削除、残りの{:b=>200}が返される。
簡単ですが以上となります。
本日も最後まで読んでいただき、ありがとうございました!🙇♀️
この記事が気に入ったらサポートをしてみませんか?