一、基础用法
定义一个函数用proc
关键字,后跟函数名,参数,函数主体大三部分。函数调用时,函数名后空格格开各个参数。
二、函数里如何操作外部变量(全局变量)
如果要在函数内部读取或修改函数外部变量(全局变量),就需要在函数内部开头用global xxx
申明一个外部变量。下面的程序,定义了一个全局变量c
,在函数func_name
里第一行申明一下外部变量global c
。声明之后就可以读取和修改外部变量值了。在函数执行完后,再puts "$c"
发现外部变量c已经被修改掉了。
三、tcl函数给参数指定默认值的方法
由于tcl函数是按参数定义的顺序来调用的,因此我们要把带默认值的参数放在最后。下面定义了两个参数a和b,并为a指定了默认参数“Hi”。第一次调用时,把传“hello”传给a,第二次调用时少传了一个参数,那么tcl就使用了函数定义时的参数默认值。
如果带默认值的参数没有放在最后,tcl会报类似的错误:wrong # args: should be "func_name ?a? b"