gpt4 book ai didi

ruby - 安全地将 `sum` 方法添加到 Array 类

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

我在我的代码中做了很多数组求和,所以我正在考虑对 Array 类进行猴子修补以包含一个 sum 方法(对数组中的所有元素求和):

class Array
def sum
self.inject{ |s, t| s + t }
end
end

但是,我以前从来没有在共享代码中修补过任何东西,我怀疑这是一个“安全”的事情(例如,也许其他人已经定义了一个 sum 方法在数组中)。

那么,什么是能够在我编写的代码中对数组求和的最佳方法,而无需编写 arr.inject{ |s, t| s + t } 每次?有猴子补丁的安全方法吗?我能以某种方式使用模块吗?或者我应该在某个地方写一个辅助方法,它接受一个数组并返回总和(即 def sum_array(arr); return arr.inject{ |s, t| s + t }; end )? (或者是否有一些完全不同的方法?)

最佳答案

inject 实际上可以接受一个符号参数,所以你真正需要写的就是 arr.inject(:+),我认为它并不需要一个较短的形式。

http://www.ruby-doc.org/core/classes/Enumerable.html#M001494

关于ruby - 安全地将 `sum` 方法添加到 Array 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6796515/

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