【发布时间】:2017-06-08 09:11:45
【问题描述】:
我正在尝试将 2 行 ruby 代码变成 1 行。例如:
def average(numbers)
result = numbers.compact
numbers.reduce(+) / numbers.length
end
我一直在查看数组方法,但找不到合适的方法来将此函数变成单行。我曾希望这样的事情会奏效:
def average(numbers)
numbers.compact.<tap or another method> { |arr| arr.reduce(+) / arr.length }
end
基本上,我正在修改数组(在示例中,我必须调用 compact 来删除 nil 值),因此我无法访问数组变量,并且我不想要迭代器,因为我不想在数组的单个元素上调用 reduce(+) 和 length。
有人知道我可以研究的方法吗?
【问题讨论】: