嗨,我已经使用 tcl 脚本编写了将近一年,现在几乎完全了解它的基础知识。但是今天我刚刚遇到了嵌套程序,这有点奇怪,因为我没有使用它。
无论如何,我在这里阅读了有关嵌套 proc的信息,但没有清楚地了解我们为什么需要它。
这篇文章说,由于 proc 在命名空间中是全局的,所以要创建一个本地 proc,你需要创建嵌套的 proc。
proc parent {} {
proc child {} {
puts "Inside child proc";
}
...
}
现在我能想到的一种用法是
proc parent {} {
proc child {intVal} {
puts "intVal is $intVal";
}
puts "[::child 10]";
... #some processing
puts "[::child 20]";
... #some processing
puts "[::child 30]";
... #some processing
puts "[::child 40]";
... #some processing
puts "[::child 50]";
... #some processing
}
所以现在子进程是父进程本地的,只能在父进程内部使用。而且据我了解,当您想在该父进程内的多个位置进行相同的处理时,它很有用。
现在我的困惑是,这是嵌套 proc 的唯一用途还是还有什么我不明白的???。我的意思是嵌套过程看起来就像是一种私有过程。
因此,请对此有所了解并帮助我了解嵌套过程的使用。