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一模一样,连三元表达式都有,呵呵。

Tags:
上一篇: NS2仿真
下一篇: tcl学习笔记(2)

相关日志推荐

0 条留言

发表评论

  
  
   (点击图片更换验证码)
点击刷新验证码