У меня есть следующий базовый код:Переменная Scope в Tcl
proc test {} {
set my_var2 3
foreach iter {1 2 3} {
set my_var1 4
set my_var2 5
puts "Inside: $my_var1 $my_var2\n"
}
puts "outside $my_var1, $my_var2\n" ;#WHY IT DOES NOT GIVE ERROR HERE!
}
test ;#calling the function
Выход программы заключается в следующем:
Inside: 4 5
Inside: 4 5
Inside: 4 5
outside 4, 5
Теперь моя путаница, поскольку my_var1
будет определить только в локальном объеме foreach loop, почему его значение доступно даже вне цикла? Другими словами, что определяет область действия переменной в Tcl? Большое спасибо за помощь!
фигурные скобки больше похожи на кавычки в TCL, они не имеют ничего общего с областью видимости. –