kind=defined
names=shift
visibility=public

--- shift -> [object, object]

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

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

ハッシュが空の場合、デフォルト値（[[m:Hash#default]]または[[m: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 [[m:Array#shift]]

