
class Array def sum self.inject{ |s,t| s + t } endend 但是,我以前从来没有在共享代码中修改任何东西,我怀疑这是一个“安全”的事情(例如,也许其他人已经在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
总结以上是内存溢出为你收集整理的ruby – 安全地向Array类添加`sum`方法全部内容,希望文章能够帮你解决ruby – 安全地向Array类添加`sum`方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)