可變範圍和可見性

類變數在類層次結構中共享。這可能導致令人驚訝的行為。

class A
  @@variable = :x

  def self.variable
    @@variable
  end
end

class B < A
  @@variable = :y
end

A.variable  # :y

類是物件,因此例項變數可用於提供特定於每個類的狀態。

class A
  @variable = :x

  def self.variable
    @variable
  end
end

class B < A
  @variable = :y
end

A.variable  # :x