当与tcl中的{*} args一起使用{*}时,{*}的意义是什么?

时间:2016-06-20 15:24:03

标签: tcl

{*} args一起使用{*}args时,next a {*}$args b 的重要性是什么? 例如:如何在类方法中使用以下内容

next a $args b

与使用

不同
status code of 500

3 个答案:

答案 0 :(得分:3)

它是参数/列表扩展运算符。它将列表转换为许多单个单词。

它被记录为tcl语法规则的一部分:http://www.tcl.tk/man/tcl/TclCmd/Tcl.htm。这是规则5。

例如,假设您有一个列表:

set foo {a b c d}

然后你调用命令:

bar $foo

该命令将被解释为:

bar "a b c d"

但如果你这样做:

bar {*}$foo

然后该命令将被解释为:

bar a b c d

答案 1 :(得分:1)

通过将命令list放在调用前面,您可以在交互式shell中看到自己的不同之处:

list next a {*}$args b 
list next a $args b

args设置为某个值(最好是某个列表值),运行上面的命令,然后您将看到调用实际上是什么样的。

答案 2 :(得分:0)

{*}将列表元素拼接为单个参数,而不是整个列表作为单个参数。