TCL基础教程入门.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCL基础教程入门

TCL学习记录 最近学习了tcl,有一些体会,写出来供大家一起交流和切磋! p.s.:由于鄙人只是用tcl进行常规流程控制和仿真验证平台的搭建,因此涉及到较为高级的用法以及tk界面的东东就没有涉猎,如果有哪位仁兄对高级用法很有心得,可以与我联系哦。 Note:鄙人此处挑拣了tcl中较为基本,也是十分实用的几个方面做粗略描述,后面还提出了一个较小的工程设计。虽然不是很完整,但个人认为麻雀虽小,五脏也是聚全了^_^。细节性的东西还劳烦大家参考active state的tcl manual。 一.Tcl是一种基于字符串的、解释性命令的语言,语法规则简单、易学。 Variable substitution: $, nestable Command substitution: [], 其实,有了command substitution实际上就表示命令可以嵌套,即:一个命令的结果可以作为别的命令的参数。 Backslash substitution: \, 与c语言类似,反斜杠主要用于在字符中插入诸如换行符、空格、[、$等被tcl解释器当作特殊符号对待的字符。 双引号和花括号 除反斜杠歪,tcl提供另外两种方法来使得解释器把分隔符和置换符等特殊字符当作普通字符。Tcl解释器对双引号中的各种分隔符将不做处理,但是对换行符以及$、[]两种置换符还会做特殊处理。而在花括号中,所有特殊字符都将成为普通字符,失去其特殊意义。 二、数组 数组是一些元素的集合。Tcl的数组和普通的计算机语言中的数组有很大的区别。在tcl中,不能单独申明一个数组,数组只能和数组元素一起申明。(感觉更像是c语言中的结构体)tcl不支持复杂的数据类型,这一点是tcl受指责最多的方面。 e.g.: set day(Monday) 1 set day(Tuesday) 2 数组的置换和简单的变量置换类似: e.g.: set a Monday set day(Monday) 1 set b $day(Monday) //b的值为1,即day(Monday) set c $day($a) //c的值为1,即day(Monday) 三、list List这个概念在tcl中是用来表示集合的。Tcl中list是由一堆元素组成的有序集合,list可以嵌套定义,list每个元素都可以是任意字符串,也可以是list。 e.g.: {} //空list {a b c d} //4个元素构成的list {a {b c} d} //3个元素构成的list,其中第二个元素本身就是一个list List是tcl中比较重要的一种数据结构,对于编写复杂的脚本有很大的帮助。 相对简单的list命令有: Lrange/lappend/linsert/lreplace/llength/lindex/concat/list 相对复杂,功能更强的list命令: Syntax: lsearch ?-exact? ?-glob? ?-regexp? List pattern 返回值为list中第一个匹配模式pattern的元素的索引,如果找不到匹配就返回-1。-glob, -exact, -regexp是三种模式匹配技术。缺省时使用-glob。-exact表示精确匹配;-glob的匹配方式和string match命令的匹配方式相同;-regexp表示正则表达式匹配。 四、局部变量和全局变量 对于过程(procedure)中定义的变量,因为它们只能在过程中被访问,并且在过程退出时会被自动删除,所以称为局部变量;在所有过程之外定义的变量称为全局变量。Tcl中,局部变量可以和全局变量同名,两者作用域的交集为空;局部变量的作用域是它所在过程的内部;全局变量的作用域则不包括所有过程的内部。(注意:这一点和c语言有很大的不同) 如果想在过程内部引用一个全局变量的值,可以使用global命令。 五、缺省参数和可变个数参数 Tcl提供三种参数形式: 首先,可以定义一个没有参数的过程,例如: proc add {} {expr 1 +2} 其次,可以定义具有缺省参数值的过程,可以为过程的全部和部分参数提供缺省值,如果调用过程时未提供那些参数的值,那么过程会自动使用缺省值赋给相应的参数。和c/c++中具有缺省参数值的函数一样,有缺省值的参数只能位于参数列表的尾端。即:在第一个具有缺省值的参数后面的所有参数,都只能时具有缺省值的参数。例如: Proc add {arg1 {arg2 2} {arg3 3}} { Expr $arg1 + $arg2 +$arg3 } 另外,tcl的过程定义还支持可变个数的参数,如果过程的最后一个参数是args,那么就表示这

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档