【发布时间】:2020-07-21 18:36:41
【问题描述】:
大家好,我是 Ruby 新手。我有一个问题:方法必须总是在类中吗?
【问题讨论】:
-
@greenhunt2003 :你总是是在某个类,即使你没有明确定义一个。你可以通过运行
ruby -e 'puts self.class'来看到这一点。 -
@user1934428 吹毛求疵,但是:你总是在一个对象的上下文中。该对象不必是一个类。 (
main是Object的一个实例,而不是Class) -
@Stefan:绝对正确!感谢您指出。如果我们明确地add a method to an instance of some class,这同样适用。
-
@Stefan:更多吹毛求疵:Ruby 中有 三个 不同的隐式上下文。对于方法lookup(以及其他一些东西,例如ivar 查找),您确实总是处于object 的上下文中。但就方法定义而言,您始终处于模块的上下文中。并且对于常量查找的目的,您始终处于……无论您想调用什么常量被查找的上下文。当然,还有局部变量查找,您始终处于 词法范围.
-
@JörgWMittag:阅读您的 cmets 总是很愉快。你有没有想过写一本书,特别是一本 Ruby 书?
标签: ruby programming-languages