ruby – 安全地向Array类添加`sum`方法
发布时间:2020-12-17 02:52:46 所属栏目:百科 来源:网络整理
导读:我在我的代码中进行了大量的数组求和,所以我想要修补Array类以包含sum方法(它对数组中的所有元素求和): class Array def sum self.inject{ |s,t| s + t } endend 但是,我以前从来没有在共享代码中修改任何东西,我怀疑这是一个“安全”的事情(例如,也许其他
我在我的代码中进行了大量的数组求和,所以我想要修补Array类以包含sum方法(它对数组中的所有元素求和):
class Array def sum self.inject{ |s,t| s + t } end end 但是,我以前从来没有在共享代码中修改任何东西,我怀疑这是一个“安全”的事情(例如,也许其他人已经在Array中定义了一个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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |