我試圖讓所有的數組方法和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