1

重複の可能性:
Ruby でこの文字列に対して * 演算子が行っていること

配列をハッシュに変換する簡単な方法を探しているときに、次のコードに出くわしました (IEnumerable の .Net の ToDictionary メソッドに似ています... キーと値を任意に設定できるようにしたかったのです)。

a = [ 1, 2, 3, 4, 5, 6 ]
h = Hash[ *a.collect { |v| [ v, v ] }.flatten ]

私の質問は、前のアスタリスクは何をするのa.collectですか?

ちなみに、コードはhttp://justatheory.com/computers/programming/ruby/array_to_hash_one_liner.htmlから来ています

4

1 に答える 1

4

あなたがそれをグーグルしたいなら、それは感嘆符の演算子です。配列をリストに変換します(したがって、配列をメソッドの引数として使用できます)。また、逆のことも行います。リストを配列に「スラップ」することができます。

require 'date'
*date_stuff = 2012,2,29 # slurp
p date_stuff #=> [2012, 2, 29]
Date.new(*date_stuff) # regurgitate
于 2012-02-28T22:14:40.030 に答える