Описание тега upvar
4
ответа
Как команда upvar работает в TCL?
У меня есть вопрос по поводу команды упвар в TCL. Используя команду upvar, у нас есть ссылка на глобальную переменную или локальную переменную в другой процедуре. Я видел следующий код: proc tamp {name1 name2} { upvar $name1 Ronalod upvar $name2 Dom…
15 июн '12 в 09:23
1
ответ
Как мне обновить переменную через окно ТК по имени
Рассмотрим следующую ситуацию: namespace eval ::mydialog {} proc ::mydialog::show {w varName args} { upvar 1 $varName theVar # now I can access theVar # (1) # code defining/creating my window # here some widgets for user interaction are created, # s…
18 авг '14 в 14:25
1
ответ
Tcl упвар к переменной в другом процессе
У меня есть две процедуры: от MAIN Я называю другой процесс Glob,$Allforces это список списков. proc ::MAIN {} { # something ::Glob $AllForces } proc ::Glob {Input} { upvar $Input AllForces # do something } Я получил "No such variable"как ошибка для…
05 июл '13 в 14:28
1
ответ
Использование пространства имен /uplevel/global в TCL
У меня есть такой скрипт: proc subProc1 { } { puts $var1 } proc subProc2 { } { puts $var2 } proc mainProc { args } { # Define many variables subProc1 subProc2 #etc. } Я хотел бы, чтобы subProc1 и subProc2 имели переменные, определенные в mainProc. Я…
30 дек '13 в 23:24
1
ответ
tcl proc использует upvar, что приводит к истории (nextid)
Я получаю эту странную проблему. я использую tcl 8.3 после того, как я определю этот процесс в оболочке tcl % proc incr { varName {amount 1}} { puts $varName upvar #0 $varName var puts $varName if {[info exists var]} { set var [expr $var + $amount] …
28 ноя '13 в 07:05
3
ответа
TCL - вернуть переменную против упвара и изменить
Хотел бы посоветоваться с профессионалами TCL для лучшей практики. Допустим, вы хотите создать список с конкретными данными, используя процедуру. Что лучше? proc processList { myList } { upvar $myList list_ #append necessary data into list_ } proc r…
24 июн '11 в 08:09
2
ответа
Tcl upvar выпуск
Я пытаюсь изменить переменную, используя upvar (в восходящем стеке), но значение переменной передается в процедуру, а не имя переменной. Я не могу изменить то, что пропущено, так как это уже широко реализовано в программе. Есть ли способ изменить им…
30 авг '15 в 08:43
2
ответа
Ошибка: не могу прочитать "n": нет такой переменной в tcl
proc rep {name} { upvar $name n puts "nm is $n" } В вышеописанной процедуреname'это параметр, который передается в процедуру с именем'rep". Когда я запускаю эту программу, я получил "error : Can't read "n" : no such variableMsgstr "Может ли кто-нибу…
08 фев '13 в 05:24
3
ответа
Невозможно передать переменную в процедуру, используя upvar в Tcl
Мне нужна процедура, которая сможет получить доступ, прочитать и изменить переменную из пространства имен вызывающей стороны. Переменная называется _current_selection, Я пытался сделать это с помощью upvar несколькими разными способами, но ничего не…
21 окт '11 в 09:01
1
ответ
В чем разница между пространством имен TCL и фреймом стека?
Upvar создает ссылку на переменную в другом кадре стека, иногда называемом стеком вызовов, или в другой области видимости. Upvar также используется для создания псевдонима для глобальной (или пространства имен) переменной 2. Но пространство имен соз…
15 янв '15 в 18:22
1
ответ
Ожидаемый TCL: upvar против производительности переменных пространства имен
Есть ли ожидаемая, по спецификации / реализации, разница между доступом к переменным пространства имен и upvar. Я должен использовать функцию обратного вызова. Я не могу просто передать аргумент. Эмпирически, апвар побеждает. Но ожидается ли это во …
08 фев '18 в 14:13
2
ответа
Улучшение производительности Tcl Upvar против прямого прохода
Это относится к Tcl 8.5. Скажем, у меня очень большой словарь. С точки зрения производительности (объем памяти и т. Д.), Если предположить, что я не изменяю словарь, должен ли упвар обеспечивать значительное улучшение производительности с точки зрен…
22 сен '15 в 14:55
3
ответа
Разница между упвар 0 и упвар 1 в TCL
Может кто-нибудь, дайте мне знать разницу между upvar 0 а также upvar 1 в TCL, как мы можем использовать в режиме реального времени. Пожалуйста, если кто-то объяснит с примером, это делает меня более ясным.
12 май '15 в 11:39
3
ответа
Какой цели служит упвар?
В коде TCL, над которым я сейчас работаю, аргументы в каждой процедуре upvar'к локальной переменной, так сказать, а затем использовать. Что-то вроде этого: proc configure_XXXX { params_name_abc params_name_xyz} { upvar $params_name_abc abc upvar $pa…
19 фев '16 в 13:48
1
ответ
Повышение области видимости переменной, не зная ее имени
Мне нужно "упвар" переменные из sourceфайл (а я не знаю их имен) Допустим, у меня есть файл TCL, содержащий: set v 7 Теперь это: proc p {} { source t.tcl } p puts $v # => can't read "v": no such variable Файл t.tcl не должен быть изменен. Я также…
17 июл '14 в 21:52
1
ответ
Tcl/Tk: область видимости переменных для функции внутри функции
Я заблудился от определения переменных в Tcl. У меня есть два прока, которые я написал и сохранил в файле, который я хочу вызвать в другом скрипте, который я пишу. В моем исходном файле (который я назову bar.tcl), Я использую upvar определить группу…
10 ноя '18 в 22:03
0
ответов
Tcl: поиск переменной на всех уровнях
Предыстория моего вопроса: я хочу написать процедуру ошибки, которая выводит дополнительное сообщение, которое помогает идентифицировать ситуацию с ошибкой. У меня есть некоторые части кода, в которых предоставляется эта дополнительная информация, а…
27 май '21 в 11:56
2
ответа
Повышение и повышение производительности TCL
Допустим, у меня есть переменная на один уровень выше, и я просто хочу запросить ее значение. У меня есть два варианта: uplevel { set var_name } Или же: upvar var_name Если мне нужно запросить переменную только один раз, а не изменять ее, какая из н…
17 июн '21 в 14:52
1
ответ
Tcl - добавить или изменить вложенный список в вызываемой функции
У меня есть вложенный список в родительской функции, и я хочу добавить к нему еще несколько элементов внутри одной из вызываемых функций. proc myparent { set mylist {} foreach elem $listelements { lappend mylist $elem } #at this point, mylist looks …
06 июл '21 в 22:14
2
ответа
Tcl: Почему в первом аргументе `upvar` используется знак доллара?
The tcl документы предоставляют следующий пример использования команды: proc add2 name { upvar $name x set x [expr {$x + 2}] } Внутри этой процедуры xдействует как ссылка на переменную, которая принадлежит области вне add2. Я не понимаю, почему перв…
26 фев '22 в 07:17