在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