Tcl упвар к переменной в другом процессе

У меня есть две процедуры: от MAIN Я называю другой процесс Glob,$Allforces это список списков.

proc ::MAIN {} {  
    # something
    ::Glob $AllForces
}

proc ::Glob {Input} {
    upvar $Input AllForces
    # do something
}

Я получил "No such variable"как ошибка для моего upvar, Итак, я попробовал:

upvar $InputMPCForces ::MAIN::AllForces

Тогда я получаю:upvar won't create namespace variable that refers to procedure variable"

Как я могу получить доступ AllForces от MAIN в Glob по ссылке?

1 ответ

Решение

Вы должны назвать свой процесс следующим образом:

::Glob AllForces

то есть вы передаете имя переменной, а не ее значение.

Затем в процедуре upvar Команда примет переменную, имя которой является значением локальной переменной input и сделать его доступным локально как AllForces

Другие вопросы по тегам