我是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
有几件事:
0级是当前进程。要在调用者的堆栈帧中设置值,请使用
uplevel 1
。因为这是默认的,所以一个简单的 uplevel
其次,你想给上层命令一个脚本。您不想实际执行 set 命令。通常,您将创建脚本的列表。
uplevel [list set $myvar $myvalue]