2022年的 Tcl 编程语言入门参考 2:变量与自定义命令
*提醒:Tcl语言区分字母大小写
创建或修改变量:set 变量名 变量值
读取变量值:set 变量名
删除变量:unset 变量名
另:与数组有关系的内容在数组章节介绍
变量名
理论上支持任意字符,但特殊字符需要用大括号{}括起来(在部分情况下可以不用 {} 但很容易出错)
在进行变量替换时,字母数字下划线的变量名可以直接使用,其它变量名需要使用大括号{}
自定义命令
通过proc命令创建我们自己的命令,proc接收三个固定参数:1命令名、2参数列表或args、3代码段
proc 命令名 {参数} {代码段}
*提示:命令名可以用中文,好处是很容易分辨哪些命令是自己创建的
其中参数列表包含0到多个参数名,在调用命令时,会为每个参数创建同名变量,在代码段中可以进行变量替换(类似于其它语言的参数调用)。
⚠特例:args为proc命令的特殊参数名,表示0~n个参数。调用命令时,会把0~n个参数值合并为一个列表,保存在args变量中。
proc命令的几种常用形式:
proc 无参数命令 {} {代码段}
proc 单参数命令 {参数名} {代码段}
proc 参数有默认值的命令 {{参数 "默认值"}} {代码段}
proc 二参数命令 {参数1 参数2} {代码段}
proc 0~n可变参数命令 {args} {代码段}
proc 前两个参数固定后面不确定的命令 {参数1 参数2 args} {代码段}
返回值
默认情况下,proc代码段中的最后一条语句的值即为自定义命令返回值(也就是运行该命令后的结果),可以使用return命令灵活操纵返回值。
return 结束自定义命令的运行(后续代码都不会再运行),并将其后的参数作为自定义命令的返回值
匿名命令
匿名命令:有些时候并不需要一个完整的自定义命令,只想对变量或某些值做一些操作(即一次性的操作)。此时可以使用匿名命令apply,用法如下:
apply {{匿名命令参数名} {代码段}} 参数值
其参数规则、返回值规则与proc相同。可以这样理解:apply就相当于"proc + 命令名",然后再把调用命令时传递的参数值附加到后面。