2012-09-08 65 views

回答

1
在FUN1函数声明的变量可能获取价值

要创建一个真正的全球变量使用$

def fun1 
    $foo = 'bar' 
end 

def fun2 
    puts $foo 
end 

这里$foo可在类instan外一旦调用了fun1

正如在第一评论指出,这should be used sparingly

他们是危险的,因为他们 可以从任何地方写入。过度使用全局变量可能会使得难以隔离错误;它也倾向于表明一个程序的设计没有经过仔细考虑。

什么你可能会问的是一个实例变量,它使用@

def fun1 
    @foo = 'bar' 
end 

def fun2 
    puts @foo 
end 

这里@foo可在类的当前实例的任何地方,它再次被调用声明fun1

关于红宝石的各种变量范围,请参阅例如this

+2

要注意的是,使用全局变量,'$ variable_name'高度鼓励是很重要的,特别是更因此Ruby开发者。 –

+0

非常真实 - 将编辑答案。 – Thilo