Tcl编程简介一

Tcl编程简介一

ID:41037317

大小:41.00 KB

页数:5页

时间:2019-08-14

Tcl编程简介一_第1页
Tcl编程简介一_第2页
Tcl编程简介一_第3页
Tcl编程简介一_第4页
Tcl编程简介一_第5页
资源描述:

《Tcl编程简介一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Tcl编程简介(一)简介  Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以解释运行,功能强大。是toolcommandlanguage的缩写,发音为"tickle”,实际上包含了两个部分:一个语言和一个库。  首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。它有一个简单的语法和很强可扩充性,Tcl可以创建新的过程以增强其内建命令的能力。  其次,Tcl是一个库包,可以被嵌入应用程序,Tcl的库包含了一个分析器、用于执行内建命令的例程和可以使你

2、扩充(定义新的过程)的库函数。应用程序可以产生Tcl命令并执行,命令可以由用户产生,也可以从用户接口的一个输入中读取(按钮或菜单等)。但Tcl库收到命令后将它分解并执行内建的命令,经常会产生递归的调用。  下面简单介绍以下txl的语法规则:解释器  在Tcl的数据结构中的核心是Tcl_Interp.一个解释器包含了一套命令,一组变量和一些用于描述状态的东西。每一个Tcl命令是在特定的Tcl_Interp中运行的,基于Tcl的应用程序可以同时拥有几个Tcl_Interp。Tcl_Interp是一个轻量级的

3、结构,可以快速的新建和删除。数据类型  Tcl只支持一种数据结构:字符串(string)。所有的命令,命令的所有的参数,命令的结果,所有的变量都是字符串。请牢记这一点,所有的东西都是字符串。这是它比较有特点的方面字符串有三种形式:命令(command),表达式(expresion)和表(list)。BasicCommandSyntax基本语法  Tcl有类似于shell和lisp的语法,当然也有许多的不同。一条Tcl的命令串包含了一条或多条命令用换行符或分号来隔开,而每一条命令包含了一个域(field)

4、的集合,域使用空白分开的,第一个域是一个命令的名字,其它的是作为参数来传给它。  例如:  seta22//相当于C中的a=22a是一个变量这条命令分为三个域:1:set2:a3:22set使用于设置变量的值的命令,a、20作为参数来传给它,a使它要操作的变量名,22是要付给的a值。  Tcl的命令名可以是内置的命令也可以是用户建的新命令,如果是用户用户建的新命令应用程序中用函数Tcl_CreateCommand来创建。所有的参数作为字符串来传递,命令自己会按其所需来解释的参数的。命令的名字必须被打全,

5、但Tcl解释器找不到一同名的命令时会用unknown命令来代替。  在很多场合下,unknown会在库目录中搜寻,找到一个的话,会自动生成一个Tcl命令并调用它。unknown经常完成缩略的命令名的执行。但最好不要使用。注释  和shell很象,第一个字母是"#"的Tcl字符串是注释。其他细节规则  Groupingargumentswithdouble-quotes用双引号来集群参数,目的在于使用有空白的参数。  例如:seta"thisstringcontainswhitespace"  如够一个参

6、数一双引号来开始,该参数会一直到下一个双引号才结束。其中可以有换行符和分号。  Variablesubstitutionwith$用美元符进行变量替换说白了就是引用该变量。  如:setahellosetb$a//b="hello"实际上传给set命令的参数//是b,"hello"setca//b="a"  Commandsubstitutionwithbrackets命令子替换(用方括号)  例如:seta[setb"hello"]  实现执行setb"hello"并用其结果来替换源命令中的方括号部分

7、,产生一条新命令  seta"hello"//"hello"为setb"hello"的返回值  最终的结果是b="hello"a="hello"  当命令的一个子域以方括号开始以方括号结束,表示要进行一个命令子替换。并执行该子命令,用其结果来替换原命令中的方括号部分。方括号中的部分都被视为Tcl命令。  如下一个复杂一点的例子:setaxyz[setb"abc"].[setc"def"]//returnxyzabcdef  Backslashsubstitution转移符替换  转移符时间不可打印字符或

8、由它数意义的字符插入进来。这一概念与C语言中的一样。Backspace(0x8).fFormfeed(0xc).Newline(0xa).Carriage-return(0xd).Tab(0x9).vVerticaltab(0xb).{Leftbrace(`{").}Rightbrace(`}").[Openbracket(`[").]Closebracket(`]").$Dollarsign(`$").spSpace(`"):doesno

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。