Ruby中是否存在与类无关的方法?

时间:2014-11-04 23:46:47

标签: ruby class methods

Eloquent Ruby 的第一章中,Russ Olsen写道:

  

Float方法将其参数 - 通常是字符串 - 转换为浮点数。

Ruby新手我一直认为Ruby方法属于类定义,所以例如FixnumArray每个都有自己独立的:is_a?(可能包括更大的或者更少量的共享代码),但“通常是字符串”意味着Float是可以在不同类的对象上调用的单个方法。有人可以澄清一下情况吗?

1 个答案:

答案 0 :(得分:0)

Float既是一个类又是一个method in Kernel。默认情况下,Kernel模块包含在所有Ruby对象中,这意味着您可以从任何地方调用Float方法。

Float方法适用于FloatFixnumString或具有to_f方法的任何其他对象的参数(此方法必须返回Float):

class Foo
   def to_f
     42.0
   end
end
Float Foo.new # => 42.0