Ruby 中如何定义类变量和类方法?

· 约 3 分钟读完 · 第 74 / 199 章

推荐答案

在 Ruby 中,类变量和类方法的定义如下:

定义类变量

类变量以 @@ 开头,定义在类中,可以在类的所有实例之间共享。

定义类方法

类方法可以通过 self.方法名 或 class << self 来定义。

使用 self.方法名

使用 class << self

本题详细解读

类变量

类变量在 Ruby 中以 @@ 开头,它们属于类本身,而不是类的实例。类变量在类的所有实例之间共享,并且可以通过类方法或实例方法访问。

  • 作用范围:类变量在整个类及其子类中可见。
  • 生命周期:类变量的生命周期与类相同,类被加载时创建,类被卸载时销毁。

类方法

类方法是定义在类上的方法,而不是类的实例上。类方法通常用于执行与类本身相关的操作,而不是与类的实例相关的操作。

  • 定义方式:

    • 使用 self.方法名:这是最常见的定义类方法的方式。
    • 使用 class << self:这种方式可以在一个块中定义多个类方法,适合需要定义多个类方法的情况。
  • 调用方式:类方法通过类名直接调用,而不是通过类的实例调用。

示例代码

在这个示例中,@@class_variable 是一个类变量,class_method 和 another_class_method 是类方法。类方法可以直接访问类变量,并且可以通过类名调用。