Ruby on rails 如何在ROR3.0中在函数中声明全局变量?
您好,我是RubyonRails新手,请告诉我是否可以在函数/方法中声明变量Ruby on rails 如何在ROR3.0中在函数中声明全局变量?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,您好,我是RubyonRails新手,请告诉我是否可以在函数/方法中声明变量 def fun1 #initialized a global variable end def fun2 #access value end 是否可以通过fun2函数获取fun1函数中声明的变量值要创建真正的全局变量,请使用$: def fun1 $foo = 'bar' end def fun2 puts $foo end 调用fun1后,$foo在类实例外部可用 如第一条
def fun1
#initialized a global variable
end
def fun2
#access value
end
是否可以通过fun2函数获取fun1函数中声明的变量值要创建真正的全局变量,请使用$
:
def fun1
$foo = 'bar'
end
def fun2
puts $foo
end
调用fun1
后,$foo
在类实例外部可用
如第一条评论所述,这:
它们很危险,因为
可以从任何地方写信给他们。过度使用globals会导致
很难分离细菌;它还倾向于表明
一个计划没有经过仔细考虑
您可能需要的是一个实例变量,它使用@
:
def fun1
@foo = 'bar'
end
def fun2
puts @foo
end
在这里,@foo
在类的当前实例中的任何位置都可用,只要调用fun1
声明了它
例如,请参见ruby中的各种变量作用域。首先,如果您可以分享您需要从函数定义全局变量的实际场景,那就更好了。对于您的解决方案,可能有更好的、可管理的、干燥的方法 其次,除了“Thilo”的答案之外,这里有一些参考资料显示了在不同情况下对rails使用全局变量。不仅仅是为了ruby。您需要它来安装rails,对吗
$variable\u name
,尤其是Ruby开发人员。