加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 为什么sqrt()不是Numeric的方法?

发布时间:2020-12-16 20:42:43 所属栏目:百科 来源:网络整理
导读:在Ruby中,一切都是一个对象.这就是为什么我不明白为什么我们有数学模块.在我看来,Math模块中的大部分(全部)函数应该是像Integer,Float等数字类型的方法. 例如.代替 Math.sqrt(5) 这样做会更有意义 5.sqrt sin,cos,tan,log10等也同样如此. 有谁知道为什么所有
在Ruby中,一切都是一个对象.这就是为什么我不明白为什么我们有数学模块.在我看来,Math模块中的大部分(全部)函数应该是像Integer,Float等数字类型的方法.

例如.代替

Math.sqrt(5)

这样做会更有意义

5.sqrt

sin,cos,tan,log10等也同样如此.

有谁知道为什么所有这些功能最终都在数学模块中?

解决方法

我不知道Ruby的早期历史,但我有一种感觉,Math模块是在C< math.h>之后建立的.头.这是Ruby标准库中的一个奇怪的鸭子.

但是,它是Ruby!所以你可以随时打破猴子修补!

class Float
  def sqrt; Math.sqrt(self); end
  def sin; Math.sin(self); end
  def cos; Math.cos(self); end
  def tan; Math.tan(self); end
  def log10; Math.log10(self); end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读