Skip to content

Commit

Permalink
バージョン分岐で 3.3 対応
Browse files Browse the repository at this point in the history
  • Loading branch information
maimux2x committed Jun 2, 2024
1 parent 9dda1c9 commit 6898f4b
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion refm/api/src/_builtin/Hash
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,26 @@ p h1.compare_by_identity? #=> true

shiftは破壊的メソッドです。selfは要素を取り除かれた残りのハッシュに変更されます。

ハッシュが空の場合、デフォルト値に関わらず nil を返します。
Ruby 3.2以前は、ハッシュが空の場合、デフォルト値([[m:Hash#default]]または[[m:Hash#default_proc]]のブロックの値か、どちらもnilならばnil)
を返します(このとき、[key,value] という形式の値を返すわけではないことに注意)。

#@samplecode 例
h = {:ab => "some" , :cd => "all"}
p h.shift #=> [:ab, "some"]
p h.shift #=> [:cd, "all"]
p h #=> {}
p h.shift #=> nil

h1 = Hash.new("default value")
p h1 #=> {}
p h1.shift #=> "default value"

h2 = Hash.new {|*arg| arg}
p h2 #=> {}
p h2.shift #=> [{}, nil]
#@end

Ruby 3.2以降はハッシュが空の場合、デフォルト値に関わらず nil を返します。

#@samplecode 例
h = {:ab => "some" , :cd => "all"}
Expand Down

0 comments on commit 6898f4b

Please sign in to comment.