Ruby是一种完全面向对象的语言。在Ruby中,一切都是一个对象,因此属于某个类。例如,5
属于Object类
。
1.9.3p194 :001 > 5.class
=> Fixnum
1.9.3p194 :002 > 5.class.superclass
=> Integer
1.9.3p194 :003 > 5.class.superclass.superclass
=> Numeric
1.9.3p194 :005 > 5.class.superclass.superclass.superclass
=> Object
1.9.3p194 :006 > 5.class.superclass.superclass.superclass.superclass
=> BasicObject
1.9.3p194 :007 > 5.class.superclass.superclass.superclass.superclass.superclass
=> nil
因此,我们必须通过在 Object_name#method_name
中添加类/对象名称来调用所有方法。例如:
5.times{|i| puts i}
现在,Rails有这些所谓的helpers,如stylesheet_link_tag
、javascript_include_tag
、form_for
等,它们遵循Object_name#method_name
语法,所以我猜它们只是普通的函数。
因此,我的问题是:
- 这些Rails helpers是什么?
- 如果它们只是函数并且没有从任何类继承,那么这是否与声称在Ruby中“一切都是对象,没有基本类型”的说法相矛盾?例如,人们引用
5.+(6)
作为例子,说明甚至操作符也只是普通的方法?
self
。您是如何得出“一切都是对象”不成立的结论的? - Sergio Tulentsevself
。我想我错了,谢谢! - CuriousMind