📜  Ruby 静态成员(1)

📅  最后修改于: 2023-12-03 15:19:52.582000             🧑  作者: Mango

Ruby 静态成员

在 Ruby 中,类中的变量和方法可以是静态的,也称为类变量和类方法。静态成员是与类对象相关联,而不是与类的实例对象相关联的。本文将介绍 Ruby 中的静态成员,并提供一些例子以帮助您更好地理解。

定义静态成员
类变量

类变量在类定义内部通过使用 @@ 符号定义:

class Example
  @@counter = 0
  
  def initialize
    @@counter += 1
  end
  
  def self.get_counter
    @@counter
  end
end

在上面的例子中,我们定义了一个名为 Example 的类,该类包含一个静态变量 @@counter。我们还定义了一个初始化方法,每次创建类实例时该方法将会自增 @@counter 变量。最后我们定义了一个名为 get_counter 的类方法来获取 @@counter 变量的值。

类方法

类方法使用 self 关键字定义:

class Example
  def self.hello
    puts "Hello!"
  end
end

在上面的例子中,我们定义了一个名为 Example 的类,该类包含一个名为 hello() 的类方法。该方法可以通过 Example.hello 调用,而不是通过类的实例。

使用静态成员
类变量

现在我们来看看如何使用 @@counter 变量:

ex1 = Example.new
ex2 = Example.new
puts Example.get_counter # 输出: 2

在上面的例子中,我们创建了两个 Example 类型的对象,并通过调用 Example.get_counter 方法获取了对象的数目,它输出为 2。

类方法

下面是使用 hello() 方法的示例:

Example.hello # 输出: Hello!

在上例中,我们调用了 Example 类中的 hello() 方法,并输出了 "Hello!"。

总结

本文介绍了 Ruby 中的静态成员,包括类变量和类方法,并提供了相应的示例。类变量可以用于跟踪类级别的信息,而类方法允许您在不创建对象的情况下调用与类相关的代码。