gpt4 book ai didi

arrays - block 方法 - 如何一起计算数组 - ruby

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:15 26 4
gpt4 key购买 nike

我想创建一个方法,使用 block 以这种方式计算 2 个数组之间的总和; [1,2,3] + [2,4,6] = [3,6,9]。

这是我目前所拥有的,我得到的错误告诉我我的参数数量有误。

*编辑。我必须使用一个方法和一个 block 来执行此操作

def arraycalc(x,y) 
yield x,y
end

arraycalc([1,2,3], [2,4,6]){|x,y| x+y}
p arraycalc #[3,6,9]

我对 Ruby 还是个新手。有人可以告诉我吗?

最佳答案

你应该使用Array#zip方法:

[1, 2, 3].zip([2, 3, 4]).map { |x, y| x + y } # => [3, 5, 7]

更新:

def arraycalc(array1,array2)
result_array = array1.zip(array2)
result_array.map { |x, y| yield x,y } if block_given?
end

arraycalc([1, 2, 3], [2, 3, 4]) { |x, y| x + y } # => [3, 5, 7]

关于arrays - block 方法 - 如何一起计算数组 - ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33343465/

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