tcl学习笔记(2)

本站内容除转载精华分类或注明zz以外,其他均为原创内容。转载请注明出处,yhustc.com版权所有

if else 跟C里面一样,只不过if条件的括号变成了大括号。至于双引号的,暂时不管它吧。捡熟悉的记。

#求绝对值

if{ $x>=0 } {
     puts "abs(x)=$x"
} else {
     puts "abs(x)=[expr -$x]"
}

switch就比C的复杂多啦。可以用三种模式判断(因为tcl里面所有的值都是字符串,所以用多种类型匹配可以从分发挥字符串的优势)。-exact:精巧匹配 -glob:使用通配符匹配 -regexp:正则表达式匹配。关键的一点,在value前加--是一个好习惯。至于为啥看书上的解释吧。然后一个区别就是每种分支情况都不需要用case关键字。直接写分支。用花括号括起来。

swith -exact -- $day {
    1 { puts "Monday" }
    2 { puts "Tuesday" }
    default { puts "Other days" }
}

while也跟C的一样。跟if else一样,条件也要用大括号括起来。

set i 0; while { $i<5 } { incr i }

foreach。C#、PHP啥的都有foreach,每个都记都记混了。这可好,tcl又出一个foreach,还跟它们都不一样。又多了个要记的。先记一个简单的,有个啥带list命令的,后面再说。

foreach value {1 3 5 7 9} {
    puts "now value is $value"
}

for循环跟C也是一样的,不过不要分号了,不要小括号了。每个语句用个大括号括起来。直接上代码。

for { set i 0} { $i<10 } { incr i } {
    puts $i
}

tcl的catch很强大,估计一点点比较写不全。书上33页。

过程。其实就是函数啦。跟PHP类似,不过function改成了proc,小括号改成了大括号。而如果变量有默认值的话,不用等号,而是把变量与默认值用一个大括号框起来。调用的时候,用语句调用。变量的作用域:跟PHP一样,引用全局变量需要在函数中用global声明。

proc p { a b {c 1} } {
        set x [ expr ($a+$b)*$c ]; puts "x=$x"
        return x
}

p 1 2;#结果是3

OTCL的就不记录了,太灵活,不是笔记两行字能写清楚的。只能需要的时候翻翻书了,呵呵。

Tags:


2 Responses to “tcl学习笔记(2)”

  1. lsosa  | 2008-06-03 09:41:00

    还不错 继续加油阿博主
  2. snow  | 2009-07-06 12:02:44

    不知道有没tcl和c集成的资料哇~

发表评论