Ruby:BigDecimal:同时是一个类和一个方法?
因此,Ruby:BigDecimal:同时是一个类和一个方法?,ruby,class,methods,callable,Ruby,Class,Methods,Callable,因此,BigDecimal是一个类 但同时,BigDecimal可以像方法一样调用: require bigdecimal BigDecimal.class # => Class 背后的机制是什么?我怎样才能看到BigDecimal是可调用的?如何使自己的类常量可调用?BigDecimal是一个类,但它也是模块中定义的方法 在内核中定义的方法不需要调用接收器,因为内核模块与对象类混合在一起 :内核模块由类对象包含,因此它的方法在每个Ruby对象中都可用 Ruby知道Array。n
BigDecimal
是一个类
但同时,BigDecimal
可以像方法一样调用:
require bigdecimal
BigDecimal.class # => Class
背后的机制是什么?我怎样才能看到
BigDecimal
是可调用的?如何使自己的类常量可调用?BigDecimal是一个类,但它也是模块中定义的方法
在内核中定义的方法不需要调用接收器,因为内核
模块与对象
类混合在一起
:内核模块由类对象包含,因此它的方法在每个Ruby对象中都可用
Ruby知道Array。new
和Array(1)
是不同的东西,因为常量()不接收参数
BigDecimal("42.0") # => 0.42e2
正如曾经说过的:
我试图让Ruby自然,而不是简单。红宝石外观简单,但内部非常复杂,就像我们的人体一样
因此,通过尝试
方法(:BigDecimal)#=>#
,我可以看到有一个方法BigDecimal
(除了类BigDecimal
)。
class Abc
end
def Abc
puts 'Method called'
end
Abc()
#=> Method called
Abc
#=> Abc (Class)