为什么ruby认为这个变量是对方法的调用

  • 本文关键字:方法 调用 变量 ruby ruby
  • 更新时间 :
  • 英文 :

class Constants
    @@pi = 3.14
end
puts(ConstantContainer.pi)

我得到以下错误:undefined method 'pi' for ConstantContainer:Class (NoMethodError)

如何告诉ruby pi是类变量而不是方法?

edit:我知道这对于定义常量是非常不合适的,但我需要一种快速演示类变量的方法。

用一个方法包装它,当然是

class Constants
    @@pi = 3.14
    def self.pi
      @@pi
    end
end
Constants.pi # => 3.14

或者做丑陋的class_variable_get

class Constants
    @@pi = 3.14
  end
Constants.class_variable_get(:@@pi) # => 3.14

最新更新