gpt4 book ai didi

ruby - 为什么我不能使用 |a,b|而不是 |(a,b)|在 arr.map { |(a, b)| !b.nil? ?一个 + b : a }?

转载 作者:太空宇宙 更新时间:2023-11-03 17:14:52 25 4
gpt4 key购买 nike

在下面的代码中,arr 表示一个二维数组,例如[[1,2],[4,5]]。它计算子数组元素的总和。一个子数组只能有一个元素,在这种情况下,总和就是那个元素。

def compute(arr)
return nil unless arr
arr.map { |(a, b)| !b.nil? ? a + b : a }
end

为什么代码必须是|(a, b)|而不是|a,b|(a,b) 在 Ruby 中是什么意思?

最佳答案

你也可以使用|a,b|,它和|(a,b)|没什么不同。

也可以改写如下代码,子数组没有元素个数限制:

 arr.map { |a| a.inject{ |sum,x| sum + x } }

甚至:

arr.map { |a| a.inject(:+) }

关于ruby - 为什么我不能使用 |a,b|而不是 |(a,b)|在 arr.map { |(a, b)| !b.nil? ?一个 + b : a }?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32345067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com