在调用 name 时,为过程的每个形式参数建立一个局部变量;它的值将是在调用命令中相应的(实际)参数的值或这个参数的缺省值。在过程调用中可以不指定有缺省值的参数。但是,必须有足够的实际参数给所有没有缺省值的形式参数,并且没有多余的实际参数。有一种特殊情况可以允许过程有可变数目的参数。如果最后的形式参数的名字是 args,则到这个过程的一个调用包含的实际参数可以多于过程拥有的形式参数。此时,把开始于应当被赋给 args 的那个实际参数的所有实际参数组合成一个列表(有如使用了 list 命令);把这个组合后的值赋给局部变量 args。
在执行 body 的时候,变量名一般引用局部变量,在被引用时自动建立它们,在过程退出时(自动)删除它们。为过程的每个参数自动的建立一个局部变量。只能通过调用 global 命令或 upvar 命令来访问全局变量。只能通过调用 variable 命令或 upvar 命令来访问名字空间变量。
proc 命令返回一个空串。在调用一个过程的时候,在一个 return 命令中指定这个过程的返回值。如果过程不执行一个显式的 return 命令,则它的返回值是在过程体中执行的最后一条命令的值。如果在执行过程体期间发生了一个错误,则作为一个整体的过程将返回相同的错误。
Copyright © 1993 The Regents of the University of California. Copyright © 1994-1996 Sun Microsystems, Inc. Copyright © 1995-1997 Roger E. Critchlow Jr.