我有一个包装另一个过程的Tcl过程并传递一些参数,如下所示:
proc OuterProc {
...some code here...
InnerProc $a $b
}
proc InnerProc { a, b } {
set someVar1 [split $a]
set someVar2 [split $b]
...error: cannot read variable a or b
}
为什么InnerProc
看不到传入的2个参数?
由于
答案 0 :(得分:4)
问题中显示的问题是,您的参数列表中有逗号。请注意,Tcl通常使用空格来分隔参数,而不是逗号。
proc OuterProc {} {
set x foo
set y bar
InnerProc $x $y
}
proc InnerProc {a b} {
puts "a=$a"
puts "b=$b"
}
OuterProc
产生
a=foo
b=bar
我在OuterProc程序中使用了不同的变量名来证明你的本地变量 names 是什么并不重要,Tcl会将值传递给下一个PROC。
如果这不是您的问题,那么您需要更具体地向我们展示您的真实代码。