Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Hashクラス > shift

instance method Hash#shift

shift -> [object, object][permalink][rdoc]

ハッシュから要素をひとつ取り除き、[key, value]という配列とし て返します。shiftがどの要素を返すかは不定です。

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

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

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]

[SEE_ALSO] Array#shift