Tcl系列文章:深入理解Tcl中的置换.doc
《Tcl系列文章:深入理解Tcl中的置换.doc》由会员分享,可在线阅读,更多相关《Tcl系列文章:深入理解Tcl中的置换.doc(2页珍藏版)》请在三一文库上搜索。
1、Tcl系列文章:深入理解Tcl中的置换Tcl语言中有三类置换:变量置换、命令置换和反斜杠置换。可以说“置换”是Tcl的灵魂,同时也是让初学者容易感到困惑的一个难点。很多初学者常会碰到这样的情形:不希望发生置换时却发生了或者希望发生置换时却没有发生,加之一些Tcl解释器调试功能欠佳,往往让初学者受挫,觉得自己的脚本发生了诡异的行为。实际上,Tcl的置换机制很简单,其行为也很容易预测,只需记住如下两条规则:规则1:Tcl在解析一条命令时,只从左向右解析一次,进行一轮置换,每一个字符只会被扫描一次;规则2:每一个字符只会发生一层置换,而不会对置换后的结果再进行一次扫描置换看一个典型的例子,在这个例子
2、中,变量x被赋值为10,变量a被赋值为字符x。之后,给变量b赋值$a。根据上述规则,Tcl从左向右对命令”set b $a”进行解析,扫描所有的字符,发现$a时,执行变量置换,得到$x,同时只发生一层置换,不会对置换后的结果$x再进行扫描置换(否则$a中最左侧也就是第一个$将被扫描两次,与规则1冲突,)。因此,最左侧的$并不会触发变量置换,最终变量b的值将会是$x,而不是10。根据上述两个规则,理解如下脚本的执行结果。从Tcl代码风格的角度看,应尽可能地将置换简单化,这意味着尽可能地将多层次嵌套的置换分解为更简单的层次置换,这可通过命令分解实现。同时避免在同一条命令中出现太多的置换,尤其避免出现太多复杂的不同类型的置换,这对代码维护十分不利。此外,值得考虑的方法是建立“过程”,将复杂的操作隔离开来,从而增强代码的可读性和可维护性。看这样一个例子,计算两个字符串的总长度,这里用到了三个命令:set、expr和stringlength。在计算str_len时,使用了变量置换和命令置换,同时出现了命令嵌套。对比另一种写法,将嵌套拆分,代码的可读性便跃然纸上。结论:Tcl在解析一条命令时-每个字符只会被扫描一次-每个字符只会发生一层置换
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Tcl 系列 文章 深入 理解 中的 置换
链接地址:https://www.31doc.com/p-3273956.html