Я новичок в 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'])
Когда я пыталсячтобы запустить его, я получил ошибку:
неопределенная локальная переменная или метод 'template' для main: Object (NameError)
Кажется, я не могу получить доступ к template
и result
переменная внутри метода generateMethods
?
Почему?
Обновление:
Кажется, что понятие области действия отличается от того, чтов javascript?
var xx='xx';
function afun(){
console.info(xx);
}
Приведенный выше код будет работать.