tcl/tk脚本中使用大量重复代码的解决方法

.

.

       在tcl/tk脚本编写过程当中,不可避免的遇到不停的使用一些重复的命令,有的时候使用循环可以很好的解决,但是有的时候脚本当中有多处需要重复的代码,而且重复的时候并没有什么规律,这时候再使用循环来解决就会造成代码比较难写,而且写成的代码由于判断和循环太多而造成阅读维护上的麻烦。这里介绍一种类似于宏过程的一种方法来解决这种问题。

      1、使用eval

      假设需要重复的三块命令分别赋值到三个变量当中,例如

      set cmd1 { puts "This is command 1"

                          puts "Next is command 2"}

      注意使用花括号把需要重复的命令括起来。类似的定义另外两个变量cmd2和cmd3。当需要使用这些重复代码时直接使用eval cmd就可以了。

      2、使用过程

      配置一个没有参数的过程,例如

      proc cmd {} {

            puts “This is command”

      }

      函数体内可以做很多命令的处理,使用时调用cmd即可。

      两种方法各有优劣,在选择上面可以灵活使用。

      当在重复的脚本当中需要大量使用当前的一些变量时,eval就具有一定的优势,并不需要进行特殊的定义就可以直接使用定义的各种变量。如果在过程当中需要使用各种变量,要么使用参数传进过程,要么把变量声明成global。

      eval还有其优点,当需要传入参数时可能eval和过程之间优势并不明显。但是如果命令的结果会改变很多参数时,eval命令的优势就体现出来。如果需要修改多个变量,使用过程的返回值就需要返回一个列表,返回后又需要重新处理,那么维护起来也更加麻烦。eval命令就可以直接set变量,无论变量是否存在。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值