Ruby:列出Fixnum方法不包括算术运算符

时间:2014-08-01 00:30:11

标签: ruby

Fixnum.methods.sort
=> [:!, :!=, :!~, :<, :<=, :<=>, ..., :trust, :untaint, :untrust, :untrusted?]

为什么不显示:*:/:+:-:%(或:"*",{{1}等等)作为方法?

I see他们被认为是方法。

2 个答案:

答案 0 :(得分:1)

FixnumClass的一个实例。 Class未定义*实例方法(甚至会做什么),Class的祖先(ModuleObject,{{ 1}},Kernel)。

现在,BasicObject1的一个实例,由于Fixnum定义了Fixnum实例方法,因此当您询问时,该实例方法会显示{ {1}}关于其方法:

*

您可以看到1定义了名为1.methods.sort # => [:!, :!=, :!~, :%, :&, :*, :**, :+, :+@, :-, :-@, :/, :<, :<<, :<=, … ] 的实例方法:

Fixnum

答案 1 :(得分:-1)

因为它们不是Fixnum的类方法。