在下面的代碼中,arr意味着是一個二維數組,例如[[1,2],[4,5]]
。它計算子數組元素的總和。子數組只能有一個元素,在這種情況下,總和就是一個元素。爲什麼我不能使用| a,b |而不是|(a,b)|在arr.map {|(a,b)|中!b.nil? ? a + b:a}?
def compute(arr)
return nil unless arr
arr.map { |(a, b)| !b.nil? ? a + b : a }
end
爲什麼代碼必須|(a, b)|
而不是|a,b|
? (a,b)
在Ruby中的含義是什麼?
更地道寫'一.inject(:+)',但是(或者'a.inject(&:+)',如果你真的願意傳遞一個proc的話)。 –
@ ChrisJester-Young是的,加入答案。 – xdazz