我有以下简单代码:
line = "Hello"
def myfn()
puts line
end
myfn()
在函数中无法访问变量line
。如何在函数内部访问全局变量?
答案 0 :(得分:3)
您可以create a module with a class variable if you need a 'global' state。
module Foo
extend self
@@line = "Hello"
def myfn
puts @@line
end
end
Foo.myfn
答案 1 :(得分:1)
还有一个替代解决方案:
line = "Hello"
myfn = ->() {
puts line
}
myfn.call
答案 2 :(得分:0)
您可以通过大写将其设置为常量。
LINE = "Hello"
def myfn()
puts LINE
end
myfn()
如果您希望它是变量,则将其作为参数传递,这就是它们的作用。
line = "Hello"
def myfn(msg)
puts msg
end
myfn(line)