Я новичок в Ruby, и кажется, что рубин делает переменные поддержки определенных вне метода осуществляется доступ только сейчас, когда я хочу что-то сделать:Ruby не может получить доступ к переменной вне метода?
template=<<MTEMP
#methodName#:function(){},
MTEMP
result="";
def generateMethods(mds)
mds.each do |md|
result+=template.gsub(/#methodName#/,md).to_s+"\n";
end
result;
end
puts generateMethods(['getName','getAge','setName','setAge'])
Когда я попытался запустить его Я получил ошибку:
undefined local variable or method 'template' for main:Object (NameError)
кажется, что я не могу получить доступ к переменному внутреннему методу template
и result
generateMethods
?
Почему?
Update:
кажется, что понятие сфера является отличается от того, что в JavaScript?
var xx='xx';
function afun(){
console.info(xx);
}
Приведенный выше код будет работать.
Существует соответствующий ответ на этот вопрос [здесь] (http://stackoverflow.com/a/10782889). – starfry