TCL脚本:变量作为函数的参数

时间:2013-01-30 09:53:56

标签: tcl

我正在尝试使用Ami的一些简单脚本,它使用TCL,但我无法保证它是标准版本。 我想从对象中读取属性并将其分配给另一个对象。

在命令窗口中,过程如下:

  

Image1 getTransform

0.1 0.2 0.3 0 0 0 0 0 0 1

  

Image2 setTransform 0.1 0.2 0.3 0 0 0 0 0 0 1

我想做同样的事情而不用手动复制粘贴getTransform的结果

以下不起作用(taht表示setTransform在没有参数的情况下执行)

Image2 setTransform [Image1 getTransform] 

set myT=Image1 getTransform
Image2 setTransform $myT 

我确信我只需要适当地使用$ [{,但到目前为止我所尝试的并没有给出任何结果

1 个答案:

答案 0 :(得分:5)

如果您使用的是Tcl 8.5或更新版本,请使用{*}参数扩展:

Image2 setTransform {*}[Image1 getTransform]

这正是你想要的。

如果你使用的是旧版本的Tcl,那么你必须使用eval,这是一个非常有用的命令,如果使用不当可能会出现很多问题:

eval [linsert [Image1 getTransform] 0 Image2 setTransform]

此处使用linsert来构建一个propper列表以避免双重替换(这几乎总是坏的)。