見出し画像

#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}が返される。


簡単ですが以上となります。

本日も最後まで読んでいただき、ありがとうございました!🙇‍♀️

この記事が気に入ったらサポートをしてみませんか?