Я изучаю TCL для своей работы, и у меня есть вопрос, на который я не могу найти ответ.
Это касается использования ::http::geturl
токена.
Давайте рассмотрим следующий код:
package require http
set url "some url"
set token [::http::geturl $url]
# the question is about the line below
upvar #0 $token state
set data $state(body)
Если я не делаю ошибку, использование upvar
здесь просто создает псевдоним state
со ссылкой на token
.
Мне интересно, почемувсегда ли эта строка записана в каком-либо коде, который я вижу (даже в документации TCL)?
Чтобы быть более ясным, set data $state(body)
эквивалентен set data $token(body)
?
И если это так,почему мы пишем это upvar
, если это не нужно (и не очень полезно, но делает скрипт тяжелее)?
На моем ноутбуке я не могу сейчас установить ничего, например tclsh поэтому я не смог выполнить тест, чтобы найти ответ самостоятельно.
Вот почему мне нужна ваша помощь.
Спасибо всем, кто ответит мне.