0

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

如果我们在 CI 会写

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

任何的想法?

非常感谢

4

2 回答 2

2

花括号{}防止替换,请尝试:

set b [list 1.0 $a 3.0 4.0]
于 2020-07-09T12:34:02.130 回答
0

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

lset b 2 $a
于 2020-07-09T14:15:30.037 回答