17、Tcl 高级命令使用指南:eval、uplevel、subst 与正则表达式

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

Tcl 高级命令使用指南:eval、uplevel、subst 与正则表达式

1. eval 内部的 concat 用法

在构建命令时,拼接操作存在一定风险,但在某些情况下,拼接是有必要的。当 eval 接收到多个参数时,它会在内部执行拼接操作:

eval list1 list2 list3 ...

拼接的效果是将所有列表合并为一个列表,不会添加新的列表结构层次。如果这些列表是命令的片段,这种拼接就非常有用。在过程中,常将 eval args 结构结合使用,通过 args 参数将可选参数传递给另一个命令。

以 Tk 中的按钮创建为例,原本创建并显示一个按钮需要两个 Tcl 命令:

button .foo -text Foo -command foo
pack .foo -side left

我们可以编写一个过程 PackedButton 来简化这个操作:

proc PackedButton {name txt cmd} {
    button $name -text $txt -command $cmd
    pack $name -side left
}

但这个过程不够灵活,因为 Tk 的 b

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值