0

hi i m new to ruby on rails please let me know is it possible to declare a variable within the function/method

def fun1
  #initialized a global variable 
end  

def fun2
  #access value   
end 

is it possible get value of a variable declared in fun1 function by fun2 function

4

2 回答 2

1

要创建真正的全局变量,请使用$

def fun1
  $foo = 'bar'
end  

def fun2
  puts $foo
end 

一旦被调用,这里$foo就在类实例之外可用。fun1

如第一条评论所述,应谨慎使用

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

您可能要求的是一个实例变量,它使用@

def fun1
  @foo = 'bar'
end  

def fun2
  puts @foo
end 

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

例如,请参阅ruby​​ 中各种变量范围的this

于 2012-09-08T05:48:15.623 回答
0

首先,如果您可以分享您需要从函数定义全局变量的实际场景,那就更好了。对于您的解决方案,可能有更好的、可管理的、干燥的方法。

其次,除了“Thilo”的回答之外,这里有一些参考资料显示了在不同情况下对导轨的全局变量的使用。不只是为了红宝石。你需要它来做铁轨吗?

于 2012-09-08T06:15:38.803 回答