身份如何Ruby的group_by()
方法组通过其元素的身份(或者更确切地说self
)的阵列? (?2.2+)组通过在红宝石
a = 'abccac'.chars
# => ["a", "b", "c", "c", "a", "c"]
a.group_by(&:???)
# should produce...
# { "a" => ["a", "a"],
# "b" => ["b"],
# "c" => ["c", "c", "c"] }
身份如何Ruby的group_by()
方法组通过其元素的身份(或者更确切地说self
)的阵列? (?2.2+)组通过在红宝石
a = 'abccac'.chars
# => ["a", "b", "c", "c", "a", "c"]
a.group_by(&:???)
# should produce...
# { "a" => ["a", "a"],
# "b" => ["b"],
# "c" => ["c", "c", "c"] }
在一个新的Ruby,
a.group_by(&:itself)
在一老一,你仍然需要做a.group_by { |x| x }
谢谢,这里是[Object#本身()]的文档链接(http://ruby-doc.org /core-2.2.0/Object.html#method-i-itself)。顺便说一下,我用'&:to_s'来提供上面的例子。 – sschmeck
也许,这将帮助:
a = 'abccac'.chars
a.group_by(&:to_s)
#=> {"a"=>["a", "a"], "b"=>["b"], "c"=>["c", "c", "c"]}
或者,下面也将工作:
a = 'abccac'.chars
a.group_by(&:dup)
#=> {"a"=>["a", "a"], "b"=>["b"], "c"=>["c", "c", "c"]}
谢谢,这是我的工作。 ;-) – sschmeck
发现了一个旧的但类似的问题,http://stackoverflow.com/q/16932711/846163 – sschmeck