请解释Tcl规则5中的示例

问题描述 投票:1回答:1

文档(https://www.tcl.tk/man/tcl8.7/TclCmd/Tcl.htm)说:

例如,“cmd a {*}{b [c]} d {*}{$e f {g h}}”等效于“cmd a b {[c]} d {$e} f {g h}”

但是为什么替换后的$e是花括号?那些是哪里来的(为什么单词[f{g h})中的其他参数不?]

syntax tcl
1个回答
2
投票

$e用括号括起来,无法对其进行评估。 f{g h}不是变量,也不像c那样放在方括号中,因此不需要它们。

这些示例还将全部扩展为同一事物:

cmd a {*}[list b {[c]}] d {*}[list {$e} f {g h}]
cmd a {*}[list b {[c]}] d {*}[list \$e f {g h}]
cmd a {*}{b [c]} d {*}"\$e f {g h}"
© www.soinside.com 2019 - 2024. All rights reserved.