class Shape
def initialize()
@blah = ""
end
end
或者...这行得通吗?
class Shape
@blah = ""
def initialize()
end
end
此外,默认情况下,实例变量是公共(public)的还是私有(private)的?如何将它们设置为公开或私有(private)?
最佳答案
您的第二个示例将 @blah
初始化为类变量。它不能直接访问(它需要一个类访问器)并且在一个类的所有实例中都是相同的。
实例变量本质上是私有(private)的,尽管您可以使用 @foo.instance_variable_get("@blah")
访问它们。按照惯例,如果你想访问一个 @blah
实例变量,你会添加一个访问器。
class Shape
attr_accessor :blah
end
这会让你说,例如,shape = Shape.new; shape.blah = "whee";放 shape.blah
(你会得到“whee”)。
关于ruby - 在 Ruby 中,(类的)实例变量必须首先在 "initialize"中定义才能工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3554168/