Tcl 的每一条命令有一个或多个“单词”组成,单词间使用空格或制表符隔开。每条命令的第一个单词是要执行的命令名,其它单词是执行时传递给命令的参数。
Tcl中所有的值都有字符串表达形式,其中一部分有效率更高的内部表达形式。
变量与替换
Tcl中变量无需声明,在调用Set时会自动创建。
# 变量赋值
set a 44
# 变量替换(使用$)
expr $a * 4
# 命令替换(使用[])
set b [expr $a * 4]
# 反斜杠替换
# 将变量x设置为字符串$a(字符\$被替换为$,而不进行$所代表的变量替换)
set x \$a
# 将变量newline赋值为包含一个换行符的字符串
set newline \n
三种替换:
命令替换,允许把一提哦啊命令的结果作为另一条命令的输入参数。方括号中的内容作为一个独立的Tcl脚本处理。
反斜杠替换:给普通字符添加特殊含义,或取消特殊字符的特殊含义
大括号与双引号
prco factorial {val} {
set result 1
while {$val > 0} {
set result [expr $result * $val]
incr val -1
}
return $result
}
大括号可以嵌套,如proc命令中,函数体使用{}嵌套。大括号中的内容不发生替换。
双引号不能嵌套,里面的内容可以照常替换。
局部变量和全局变量
通常来说,过程中的变量都是局部变量,在过程外时不可见的。
编写Tcl时,首先必须学会Tcl的语法,其内容是决定如何解析命令的十多条规则。其次要掌握脚本中使用的独立命令,Tcl提供了大约100条内建命令。
脚本、命令和单词
Tcl脚本包含一条或更多的命令,通过换行符或分号隔开
set a 24; set b 60
tcl命令处理
Tcl处理命令分成两步:解析和执行。