【发布时间】:2012-03-18 10:15:33
【问题描述】:
在寻找将数组转换为哈希的简单方法时,我遇到了以下代码(类似于 .Net 在 IEnumerable 上的 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
【问题讨论】:
-
啊,还没找到那个。星号很难搜索,因为 google 和 SO 会将其从搜索中过滤掉。
-
好吧,现在你知道它叫“splat”了。 :-)
-
感谢@JoshLee 的帮助。
-
Symbol Hound 搜索引擎专门搜索符号:
ruby * -
谢谢@sarnold,我以前从未听说过符号猎犬。以后一定要记住。