tcl 如何重新定义“set”命令

问题描述 投票:0回答:1

我是tcl的新人。 如何用tcl模仿“set”命令?

我尝试像下面一样构建,但下面的代码有错误:未知命令名称:

proc my_set {varName {value ""}} {
  uplevel 0 [set $varName $value]
}
my_set a "123"
my_set b(a) "good"

puts $a; #expected: 123
puts $b(a); #expected: good
set tcl proc
1个回答
0
投票

有几件事:

0级是当前进程。要在调用者的堆栈帧中设置值,请使用

uplevel 1
。因为这是默认的,所以一个简单的
uplevel

其次,你想给上层命令一个脚本。您不想实际执行 set 命令。通常,您将创建脚本的列表

uplevel [list set $myvar $myvalue]
© www.soinside.com 2019 - 2024. All rights reserved.