的Array
方法的一些爆炸的版本是一样compact!
,reject!
,flatten!
,uniq!
回报nil
如果没有作出任何的改变:行为阵爆炸方法
[1,[2]].flatten!
# => [1, 2]
[1,2].flatten!
# => nil
[1,[2]].flatten
# => [1, 2]
[1,2].flatten
# => [1, 2]
[1,2,nil].compact!
# => [1, 2]
[1,2].compact!
# => nil
[1,2,nil].compact
# => [1, 2]
[1,2].compact
# => [1, 2]
如果他们这样做了,必须有一个原因。任何想法可能是什么?
这是一个很好的观点。但是你不能说'return array.flatten!',这对我来说似乎有用,或者是 – artemave 2010-09-18 14:17:56
True。如果这就是你想要的,你会说'return array.flatten'(no bang),它会返回原始数组的平面副本。 – 2010-09-18 14:20:32
这迫使我在我不需要的地方复印。这正是我首先使用压缩版本时遇到的问题。 – artemave 2010-09-18 14:23:12