tcl 接受可变数量参数的过程

示例

### Definition
proc myproc {alpha {beta {}} {gamma green}} {
    puts [list $alpha $beta $gamma]
}
### Use
myproc A
# => A {} green
myproc A B
# => A B green
myproc A B C
# => A B C

此过程接受一个,两个或三个参数:名称为双项列表中第一项的那些参数是可选的。参数变量(alpha,beta,gamma)获得尽可能多的参数值是可用的,由左到右分配。不获取任何参数值的参数变量将从它们所属的列表中的第二项获取其值。

请注意,可选参数必须位于参数列表的末尾。如果参数N-1是可选的,则参数N也必须是可选的。如果在一个情况下,如果用户有说法ñ而不是争论N-1 ,参数的默认值N-1需要参数前应明确提及ñ,而调用程序。

myproc A B C D
# (ERROR) wrong # args: should be "myproc alpha ?beta? ?gamma?"

该过程最多接受三个参数:请注意,会自动创建一条有用的错误消息,描述参数语法。