TCL 数组替换

TCL array substitution

在 TCL (运行 v8.6.6) 中,我想创建一个数组,用另一个变量的值替换数组的一个或多个值。

如果我们在C我会写

float a = 10;
float b[4] = {1.0, 2.0, 3.0, 4.0};
b[2]=a;

如果我在标准输出上打印,我得到 1.0 10.0 3.3 4.0。

在 TCL 中,我从一个简单的例子开始。我写了

set a 10.0
set b $a

puts $b

我得到了 10.0 作为输出,但是如果我想在数组中做同样的事情,所以我写了

set a 10.0
set b {1.0 $a 3.0 4.0}

puts $b

我期待

1.0 10.0 3.0 4.0

但我得到了

-0.5 $a 0.5 0.79

有什么想法吗?

非常感谢

大括号{}防止替换,试试:

set b [list 1.0 $a 3.0 4.0]

虽然您发现创建 一个带有替换的列表是通过 list 命令完成的,但这里是如何对等同于的元素进行赋值b[2]=a; 来自 C.

lset b 2 $a