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
超级会员免费看
订阅专栏 解锁全文

2232

被折叠的 条评论
为什么被折叠?



