问题标签 [upvar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcl - TCL - 返回变量与 upvar 并修改
想听取 TCL 专业人士的建议以获得最佳实践。
假设您想使用 proc 构造一个包含特定数据的列表。现在哪个是最好的方法?
推荐哪种做法?
编辑:我很抱歉,但我无法理解回答这个问题的人的共识(和解释)。
tcl - 无法在 Tcl 中使用 upvar 将变量传递给过程
我需要一个能够从调用者的命名空间访问、读取和更改变量的过程。该变量称为_current_selection
。我尝试以upvar
几种不同的方式使用它,但没有任何效果。(我写了一个小的测试过程只是为了测试upvar
机制)。这是我的尝试:
调用过程:
过程:
对于我的第二次尝试:
调用过程:
过程:
在所有尝试中,一旦它到达代码中的这个区域,它就会说can't read "curr_sel": no such variable
我究竟做错了什么?
编辑:
该函数的调用是通过以下bind
命令进行的:
一开始我以为没关系。但也许确实如此。
tcl - upvar 命令在 TCL 中是如何工作的?
我对 TCL 中的 upvar 命令有疑问。使用 upvar 命令,我们可以在其他过程中引用全局变量或局部变量。我看到了以下代码:
这个过程被称为tamp name1 name2
,并且没有在它之外定义全局变量 name1、name2,这个 upvar 在这种情况下是如何工作的?
variables - error : Can't read "n" : no such variable in tcl
In the above procedure, 'name
' is a parameter which is passed to a procedure named 'rep
'. When I run this program I got "error : Can't read "n" : no such variable
". Could any one tell me what could be the possible cause for this error.
tcl - Tcl upvar 到另一个 proc 中的变量
我有两个 proc:从MAIN
我调用另一个 proc Glob
。
$Allforces
是列表的列表。
我得到“ No such variable
”作为我尝试的错误upvar
。所以我尝试了:
然后我得到:“ upvar won't create namespace variable that refers to procedure variable
”
如何通过引用AllForces
从MAIN
in访问?Glob
tcl - tcl proc 使用 upvar 导致历史(nextid)
我遇到了这个奇怪的问题。我正在使用 tcl 8.3
在我在 tcl shell 中定义这个过程之后
我不断得到
每次我点击换行符“Enter”之后,有人知道为什么会这样吗?
namespaces - TCL 中 namespace/uplevel/global 的使用
我有一个这样的脚本:
我希望 subProc1 和 subProc2 在 mainProc 中定义变量。我可以将它们作为参数传递,但这是很多参数,我想避免这种情况。
我尝试使用 upvar 命令,将这一行添加到我的 subProcs :
但是我有“没有这样的变量”错误消息,而且有这样的大行并不好
我刚刚阅读了有关命名空间的信息,但我并不真正了解如何使用它(另外我不确定这个概念,所以它真的适合我的用例吗?)
tcl - 在不知道其名称的情况下提升变量范围
我需要从source
'd 文件中'upvar' 变量(我不知道他们的名字)
假设我有一个 TCL 文件,其中包含:
现在这个:
文件 t.tcl 不得更改。
我也无法了解t.tcl
. 假设它作为env
变量传递。如何v
在顶层显示?
namespaces - how do I update a variable via a tk window by name
Consider the following situation:
Im trying to figure out how to (a) get a variable from the calling scope (b) have it available in all three procs and (c) writing any changes back into said variable.
(a) I would normally solve using 'upvar 1 $varName theVar' (b) I would normally solve with a namespace variable (c) As long as we only have one proc that would happen automaticly with (a) due to the fact that we would be working on a local alias of that variable
The problem is that upvar only works (at least as intended) in (1). I could use upvar in (1) and save/copy into a namespace variable, that would solve (a) and (b), but not (c).
I would be gratefull if someone could point me in the right direction here.
Also, as I'm relativly new to Tcl/Tk my concept might not be ideal, suggestions toward a better design are welcome too.
namespaces - TCL 命名空间和堆栈框架有什么区别?
Upvar 在不同的堆栈帧(有时称为调用堆栈或 不同的范围)中创建指向变量的链接。
Upvar 还用于为全局(或命名空间)变量2创建别名。但是命名空间只能由namespace eval命令创建。proc 命令创建一个新的堆栈帧。
命名空间和调用堆栈似乎是TCL 命名上下文可以更改的两种方式。Upvar 和 Uplevel 可以在命名空间和调用堆栈上工作。
我做对了吗?我还没有看到调用堆栈和命名空间之间的直接比较,因此我提出了问题。