tcl学习笔记(1)
赋值用set,而不是等号,第一次使用变量时,tcl会自动创建变量。对于数组的赋值也是直接使用set语句。不过比较奇怪的是,tcl的数组居然不用[]把索引框起来,用的是(),这个要牢记。数组的索引可以使用字符串(事实上,tcl中数字也是字符串-___-!!)
set a 3; set a 100;#创建a变量初值为3,将a的值赋值成100
set arr(1) 1;#把arr数组索引为1的变量赋值为1
变量引用跟PHP一样,用$引用变量。
set b $a ;# 将a的值赋给b
替换。变量替换跟PHP一样,只是没有引号将字符串框起来。命令替换象js里面的eval,只是eval()变成了[]。反斜杠的替换跟其他语言一样,就是转义符。
set a 100; puts $a.00;#打印结果是100.00
set b [expr $a*2];#b的值为200,跟eval一样,[]框起来的东西直接执行。expr表示里面是一个数学表达式
set b \$a;#b的值为$a,是一个字符串。\就是转义符
组合。因为tcl使用空格来表示不同的字符串,那么如果一个字符串有多个单词,需要将它们组合成一个字符串。组合是将多个字符串连起来。可以用双引号和大括号。双引号跟PHP里面的双引号一个作用,里面的变量可以替换。大括号跟PHP里面的单引号一个作用,里面的全部作常规字符串处理。tcl的执行规则,先组合,后替代,组合只管字符串的组成,内部变量和表达式由替代处理,那么从左到右,从里到外的规则还是要执行的,见第三个实验。
set a “Hello World”; set b "length of a is [string length $a]";#b的值为length of a is 11
set a “Hello World”; set b {length of a is [string length $a]};#b的值为length of a is [string length $a]
set a 3; set b 5; puts "[set a [expr $a+$b]]=$a+$b";#8=8+5,从左到右,从里到外
数学运算。运算符跟C一模一样,连三元表达式都有,呵呵。
0 条留言
发表评论