Tcl编程简介(三)

Tcl 内置命令

内置的命令

  Tcl提供了下面描述的内置函数。

  .其中: ... 表示参数不定具体有:

  append命令:


append varName value
append varName value value value ...

 

  将那一大堆value附加到varName后面。如果变量不存在,会新建一个。

  例子:


set i "aaa"
append i "bbb" "ccc"
//i = aaabbbccc

 

  array命令:


array subcommand arrayName
array subcommand arrayName arg ...

 

  这是一组用于向量操作的命令。第二个参数是子命令名。

  假设:


set a(1) 1111
set a(2) 2222
set a(three) 3333

 

  一下均以它为例子(tclsh在中运行)。

array names arrayName

  返回一个数组素名字的列表。


tclsh>array names a
1 2 three
array size arrayName

 

  返回数组的素个数。


tclsh>array size a
3

 

  下面是用于遍历的命令

arrry startsearch arrayName

  初始化一次遍历,返回一个遍历标示(searchId)在下面的命令是中使用。

array nextelement arrayName searchId

  返回下一个数组中的素。如果没有返回一个空串。

array anymore arrayName searchId

  返回 1 表示还有更多的素。0 表示没有了。

array donesearch arrayName searchId

  结束该次遍历。

array nextelement arrayName searchId

  返回下一个素。


tclsh>array startsearch a
s-1-a
tclsh>array nextelement a s-1-a
1111
tclsh>array nextelement a s-1-a
2222
tclsh>array anymore a s-1-a
1
tclsh?array nextelement a s-1-a
3333
tclsh>array donesearch a s-1-a

 

  注意可以同时并发多个遍历。


break命令
break

 

  跳出最近的循环。


case string in patList body ...
case string patList body ...
case string in {patList body ...}
case string {patList body ...}

 

  分支跳转。

  例如:


case abc in {a b} {puts 1} default {puts 2} a* {puts 3}
return 3.

case a in {
{a b} {format 1}
default {format 2}
a* {format 3}
}
returns 1.

case xyz {
{a b}
{format 1}
default
{format 2}
a*
{format 3}
}
returns 2.

 

  注意default不可以放在第一位。支持shell文件名风格的匹配符。

catch 命令

catch command varName

  用于阻止由于错误而导致中断执行。执行command, 每次都返回TCL_OK, 无论是否有错误发生。如有错误发生返回1 ,反之返回0 。如果给了varName这被置为错误信息。注意varName是已经存在的变量。


cd 命令(如shell)
cd dirName

 

  转换当前工作目录。如dirName未给出则转入home目录。

close fileId

  关闭文件描述符。

concat arg ...

  将参数连接产生一个表。


concat a b {c d e} {f {g h}}
return `a b c d e f {g h}"

continue

 

  结束该次循环并继续循环。

eof fileId

  如fileId以结束 返回1,反之返回 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值