我有一个 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 个参数?
谢谢
我有一个 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 个参数?
谢谢
问题中显示的问题是您的参数列表中有逗号。请注意,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 过程中使用了不同的变量名来证明无论你的局部变量名是什么,Tcl 都会将值传递给下一个过程。
如果这不是您的问题,那么您需要更具体地向我们展示您的真实代码是什么。