Итак, я пытался взять два массива a
и b
вернуть третий массив таким образом, чтобы элемент n th третьего массива был суммой n th элементов массивов a
и b
. Я смотрел на метод #zip
, который чередует массивы так, что если a = [1, 2, 3]
и b = [4, 5, 6]
a.zip(b) = [[1, 4], [2, 5], [3, 6]]
. ruby-doc.org говорит, что если задан блок, он вызывается для каждого выходного массива... Хотя он возился с ним, я нашел что-то интересное. Если вы вызываете zip с блоком, он всегда возвращает нуль. Я здесь что-то не так?
c = a.zip(b) { |x| x.reduce(:+) }
возвращает nil
c = a.zip(b).map { |x| x.reduce(:+) }
возвращает желаемый результат