为什么我们没有group_by!在ruby枚举模块中?

时间:2013-06-16 18:20:59

标签: ruby syntax

我们没有group_by的原因!可枚举模块中的方法。为什么我必须这样做:

something = something.group_by(&:attr)

VS

something.group_by!(&:attr)

1 个答案:

答案 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