我正在尝试使用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
我确信我只需要适当地使用$ [{,但到目前为止我所尝试的并没有给出任何结果
答案 0 :(得分:5)
如果您使用的是Tcl 8.5或更新版本,请使用{*}
参数扩展:
Image2 setTransform {*}[Image1 getTransform]
这正是你想要的。
如果你使用的是旧版本的Tcl,那么你必须使用eval
,这是一个非常有用的命令,如果使用不当可能会出现很多问题:
eval [linsert [Image1 getTransform] 0 Image2 setTransform]
此处使用linsert
来构建一个propper列表以避免双重替换(这几乎总是坏的)。