こんにちは、私はほぼ 1 年間 tcl スクリプトを使用しており、現在ではほぼ基本的なことを完全に理解しています。しかし、今日、ネストされたプロシージャに出くわしました。これは、使用できなかったので奇妙なものです。
とにかく、ここでネストされた proc について読みましたが、なぜそれが必要なのかについて明確な考えが得られませんでした。
この記事では、proc は名前空間でグローバルであるため、ローカル proc を作成するにはネストされた proc を作成すると述べています。
proc parent {} {
proc child {} {
puts "Inside child proc";
}
...
}
今私が考えることができる1つの使用法は次のようなものです
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 は親 proc に対してローカルになり、親 proc 内でのみ使用できます。また、私が理解しているように、その親プロシージャ内の複数の場所で同じ処理を行いたい場合にも役立ちます。
今、私の混乱は、これがネストされた proc の唯一の使用ですか、それとも私が理解していない他の何かがあるのでしょうか???. つまり、ネストされた proc は一種のプライベート proc のように見えます。
それで、それに光を当てて、ネストされたprocの使用を理解するのを手伝ってください。