Sla*_*ava 1 ruby scope local-variables
blah = 10
def what?
"#{blah}"
end
puts what?
# =>
# NameError: undefined local variable or method `blah' for main:Object
# from (irb):3:in `what?'
# from (irb):5
# from E:/RailsInstaller/Ruby1.9.3/bin/irb:12:in `<main>`
Run Code Online (Sandbox Code Playgroud)
为什么?正确的写法是什么?我应该在局部范围内复制一个变量还是有更好的变体?
小智 5
您需要在这里定义实例变量或方法:
@blah = 10
def what?
"#{@blah}"
end
Run Code Online (Sandbox Code Playgroud)
或者像这样:
def blah
10
end
def what?
"#{blah}"
end
Run Code Online (Sandbox Code Playgroud)