我们没有group_by的原因!可枚举模块中的方法。为什么我必须这样做:
something = something.group_by(&:attr)
VS
something.group_by!(&:attr)
答案 0 :(得分:8)
因为group_by可以改变变量的类型(而变量方法不能这样做)。
例如:
something = [1,2,3,4,4]
# something is Array
something = something.group_by{|x| x % 2 }
# => {1=>[1, 3], 0=>[2, 4, 4]}
# now something is a Hash