我正在尝试围绕 Ruby 变量展开思考,并认为从 C# 的角度来看它们可能会很好
有人能告诉我 Ruby 的 C# 等价物吗(例如 @@ == 公共静态变量?):
$ 全局变量
@ 实例变量
@@ 类变量
[az] 局部变量
[AZ] 常量
我还缺少其他类型的变量吗?
有人还可以解释@instance 变量是如何使用/发挥作用的吗?
起初我以为它是类实例中的某个全局变量,但后来我看到它与实例方法中的局部变量之类的范围一起使用。
这是来自“接地良好的红宝石”的一个例子
class C
def show_var
@v = "i am an instance variable initialized to a string"
puts @v
end
@v = "instance variables can appear anywhere..."
end
C.new.show_var
如果我希望 'v' 是类实例中任何地方的同一个变量,那么 Ruby 的机制是什么?