これは Tcl 8.4 です。
ユーザーが指定した他の手順に共通することを実行できる手順を作成しようとしています。
例えば:
proc process_menu_item {command args {count 1}} {
set inf [expr {$count == -1 ? 1 : 0}]
set end_str [expr {$count == -1 ? "inf" : $count}]
set loop_cnt 0
while {$inf || $count > 0} {
incr loop_cnt
puts [format "------- %s -------" [bold "LOOP $loop_cnt of $end_str"]]
$command $args
}
return
}
この手順は、指定された $command を $count 回だけ実行することを望んでいました。私が遭遇する問題は、引数を渡すことです。
次のようなプロシージャを呼び出したいとしましょう。
proc example {{par_a {-1}} {par_b {-1}} {par_c 1}} {
puts "All params: $par_a $par_b $par_c"
}
どのように電話すればよいprocess_menu_item
ですか? それは可能ですか?文字列、リストを試しましたが、最終的par_a
にすべての引数の大きなリストを取得します。
ありがとうございました。