这是 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
得到了一个包含所有参数的大列表。
谢谢你。