第四课
TCL语言
- simple text out
puts "Hello"
puts {Hello}
用大括号则文本不转义
**有的时候文本会出现乱码^M,是因为unix和windows对换行符处理不同,lunix用\n换行,windows用\r\n。推荐用ultraedit,可以自动替换最后的换行符。
tcl每一行的结束用回车标志,也可以用分号
- variables
set a 5
set b {a b c d}
set b 1.25
set c "Hello"
与c语言等有强制类型的语言不同,tcl是根据上下文分析类型的语言。
- substitutions
set msg "a is $a;the square of a is [expr $a * $a]"
用$a代替变量,要使用表达式必须要用[expr]包含,[]表示中括号内不是一个tcl命令
若把这句代码的""改成{},则[expr]将不会被识别为命令,只是单纯的文本
[expr]的作用
首先设置a和b的值
set a 10
set b "10"
若要通过b访问a的值,则需要使用[expr]
puts $$b ->输出的是字符$a
puts [expr $$b] ->输出的是10
eval命令也可以起到相似的效果
- append
append x 89
append可以返回做出改动的新字符串,但是原字符串不会变化
- switch
tcl语言的switch默认只执行符合项,执行完就跳出结构,在语句后面加-才会继续执行下一句。(与C语言进行区别)
switch $x {
a -
b {incr t1}
c {incr t2}
}
Control Structures
tcl语言的控制结构中,要注意在关键字和符号之间加空格,否则解释器可能无法识别
例如if {a} 语句中if和{a}之间要加上空格
- lists
列表相当于数组
set x {a b c} 设置一个数组
concat {a b c} {d e} 连接数组中的元素
lappend x tt 在数组后加上元素并改变原变量
linsert $x 2 kk 在数组的第2个元素位置插入元素并返回,但不改变原变量
llength $x 返回数组所含元素数
lindex $x 0 返回数组中第0个元素的值
split "a/b/c" 将字符串转化为list
join {a b c} 将list转化为字符串
- while,for,foreach
while {$i>0} {
……
}
foreach i $a { 注意这里的i不能写成$i
……
}
- procedures
proc main{输入} {
……
}
File access

r表示是读入模式,将文件名字赋给f
版权声明:本文为qq_38453556原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。