ruby – 安全地向Array类添加`sum`方法

ruby – 安全地向Array类添加`sum`方法,第1张

概述我在我的代码中进行了大量的数组求和,所以我想要修补Array类以包含sum方法(它对数组中的所有元素求和): class Array def sum self.inject{ |s, t| s + t } endend 但是,我以前从来没有在共享代码中修改任何东西,我怀疑这是一个“安全”的事情(例如,也许其他人已经在Array中定义了一个sum方法). 那么能够在我正在编写的代码 我在我的代码中进行了大量的数组求和,所以我想要修补Array类以包含sum方法(它对数组中的所有元素求和):

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`方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1286225.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存