Jestem nowym Ruby, i wydaje się, że Ruby nie zmienne wsparcia zdefiniowane poza metoda jest dostępna tylko teraz, kiedy chcę coś zrobić:Ruby nie może uzyskać dostępu do zmiennej poza metodą?
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'])
Kiedy próbowałem go uruchomić mam błąd:
undefined local variable or method 'template' for main:Object (NameError)
wydaje się, że nie może uzyskać dostępu do zmiennej wewnętrznej metody template
i result
generateMethods
?
Dlaczego?
Aktualizacja:
Wydaje się, że koncepcja jest zakres różni się od tego, co jest w javascript?
var xx='xx';
function afun(){
console.info(xx);
}
Powyższy kod zadziała.
Istnieje odpowiednia odpowiedź na to pytanie [tutaj] (http://stackoverflow.com/a/10782889). – starfry