喜进出口新的Ruby on Rails的,请让我知道是否有可能声明函数内的一个变量/方法如何在函数中声明ROR3.0中的全局变量?
def fun1
#initialized a global variable
end
def fun2
#access value
end
是由FUN2功能
喜进出口新的Ruby on Rails的,请让我知道是否有可能声明函数内的一个变量/方法如何在函数中声明ROR3.0中的全局变量?
def fun1
#initialized a global variable
end
def fun2
#access value
end
是由FUN2功能
要创建一个真正的全球变量使用$
:
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。
首先,如果你可以分享你的实际场景,你需要从一个函数定义一个全局变量会更好。您的解决方案可能有更好的,可管理的DRY方法。
其次,除了从“蒂洛”的答案,这里是表示轨在不同情况下的全局变量的使用一些参考。不只是红宝石。你需要它的轨道吗?
要注意的是,使用全局变量,'$ variable_name'高度鼓励是很重要的,特别是更因此Ruby开发者。 –
非常真实 - 将编辑答案。 – Thilo