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
在 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