接受可变数量参数的过程
### 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?"
该过程不接受三个以上的参数:请注意,会自动创建描述参数语法的有用错误消息。