解释一下这个代码片断中的星号

解释一下这个代码片断中的星号

class Array
def to_h(default=nil)
  Hash[ *inject([]) { |a, value| a.push value, default || yield(value) } ]
 end
end

我不明白inject前面的*是什么意思,请问怎么才能知道这样的写法是合法的呢
unpack array
比如
a,b=*[1,2]
結果:a==1,b==2