使用proc复制Tcl中的参数

SIM*_*MEL 1 tcl proc-object

我想制作几个具有相同参数的对象,所以我尝试将它们存储在返回它们的proc中.但是解释器将返回结果评估为一个参数,而不是几个参数.我的过程是:

proc element_param {} {
    return "-filled 1\
        -visible 1\
        -linewidth 1\
        -linecolor yellow\
        -fillcolor yellow\
        -relief roundraised\
        -linewidth 2"
}
Run Code Online (Sandbox Code Playgroud)

我用它:

$this/zinc add rectangle 1 [list "100" "100" "200" "200"] [element_param]
Run Code Online (Sandbox Code Playgroud)

如何将它们转换为几个不同的参数?

pat*_*yts 7

使用tcl 8.5及更高版本,使用{*}运算符展开参数列表:

$this/zinc add rectangle 1 $coords {*}[element_param]
Run Code Online (Sandbox Code Playgroud)

使用以前的版本,您可以使用eval扩展列表:

eval [linsert [element_param] 0 $this/zinc add rectangle 1 $coords]
Run Code Online (Sandbox Code Playgroud)

这相当于.