class Shape
    def initialize()
        @blah = ""
    end
end

或者…这行吗?
class Shape
    @blah = ""
    def initialize()

    end
end

另外,默认情况下,实例变量是公共的还是私有的?你如何将它们设置为公共的还是私有的?

最佳答案

第二个示例将@blah初始化为类变量它不能直接访问(它需要一个类访问器),并且在类的所有实例中都是一样的。
实例变量本质上是私有的,尽管您可以使用@foo.instance_variable_get("@blah")访问它们通常,如果您想要访问一个@blah实例变量,您可以添加一个访问器。

class Shape
  attr_accessor :blah
end

例如,这会让你说,shape = Shape.new; shape.blah = "whee"; puts shape.blah(你会得到“whee”)。

07-24 18:04
查看更多