Ruby 元编程:方法定义与作用域探索
1. 定义类方法
1.1 使用对象前缀定义类方法
在 Ruby 中,我们可以使用对象前缀来定义类方法。以下是一个示例代码:
def self.display
--snip--
end
这里, self 代表当前类(假设为 Quote 类)。当使用这种方式定义方法时,Ruby 会执行以下步骤:
1. 找到对象的类 :由于 self 是一个类( Quote ),其类实际上是 Quote 的元类。
2. 保存新方法 :Ruby 将 display 方法保存到 Quote 的元类的方法表中,使其成为一个新的类方法。
需要注意的是,如果调用 Quote.class ,Ruby 会返回 Class ,因为所有类都是 Class 类的实例。而元类是一个内部概念,通常在 Ruby 程序中是隐藏的。要查看 Quote 的元类,可以调用 Quote.singleton_class ,它会返回 #<Class:Quote> 。
超级会员免费看
订阅专栏 解锁全文
313

被折叠的 条评论
为什么被折叠?



