Ruby類變量如何定義使用

小樊
83
2024-11-02 09:38:21

在Ruby中,類變量是在類定義中聲明的變量,它們屬于類本身而不是類的實(shí)例。類變量的命名通常以@@為前綴。這里是如何定義和使用類變量的示例:

class MyClass
  # 定義類變量
  @@class_variable = "I am a class variable"

  def initialize
    # 在實(shí)例方法中訪問(wèn)類變量
    puts @@class_variable
  end
end

# 創(chuàng)建類的實(shí)例
instance1 = MyClass.new
instance2 = MyClass.new

# 通過(guò)實(shí)例訪問(wèn)類變量
puts instance1.instance_variable_get(:@class_variable) # 輸出 "I am a class variable"
puts instance2.instance_variable_get(:@class_variable) # 輸出 "I am a class variable"

需要注意的是,類變量在所有類的實(shí)例之間共享。在上面的示例中,當(dāng)我們?cè)L問(wèn)instance1instance2的類變量時(shí),它們都返回相同的值。

如果你想要定義一個(gè)實(shí)例變量,可以使用@前綴,如下所示:

class MyClass
  def initialize
    # 定義實(shí)例變量
    @instance_variable = "I am an instance variable"
  end
end

instance = MyClass.new
puts instance.instance_variable_get(:@instance_variable) # 輸出 "I am an instance variable"

實(shí)例變量?jī)H在類的實(shí)例之間共享,每個(gè)實(shí)例都有自己的實(shí)例變量副本。

0