我试图让所有的数组方法和Ruby中的枚举变得非常舒服,但我不明白为什么有些不会变异和其他人做。举例来说,有没有之间的差异:Ruby数组突变混淆?
def double(array)
array.map {|x| x * 2}
end
和
def double(array)
return array.map! {|x| x * 2}
end
此外,当我试着打
b.select{|x| x.even?}
其中b是一个整数数组,它并没有改变,但是
b = b.select{|x| x.even?} OR
.delete_if
看起来似乎改变它。
是
a.each do |word|
word.capitalize!
end
一样
a.map do |word|
word.capitalize
end
错字:'capitalze!'应该是“大写!”。另外,这个例子很好,但是可以使得select更加简洁:b。选择(&:偶数?) –
更简洁,是的,但不太清楚; OP对两个类似命名的方法调用之间的区别的性质感到困惑,抛出一个新的概念,比如对它们进行测试的方法不会做任何事情,但会进一步混淆它们。感谢您的错字! – Hamms