我最近开始在Tcl编程,我发现难以为我的问题开发代码。 我必须从相同长度的用户输入两个数组元素,然后我发现添加了两个数组元素并将其存储在第三个数组中。 例如arr1包含[1 2 3 4],arr2包含[2 3 4 5]。所以我的第三个数组应该给我[3 5 7 9]作为输出。
答案 0 :(得分:0)
假设你在谈论tcl列表而不是tcl数组,你可以这样做:
set l1 {1 2 3 4}
set l2 {2 3 4 5}
foreach e1 $l1 e2 $l2 {
lappend l3 [expr "$e1 + $e2"]
}
这里的诀窍是这个tcl可以traverse multiple lists simultaneously in a foreach loop。
如果您需要input from stdin, you can use the gets command一次获得一行:
gets stdin l1
gets stdin l2
foreach e1 $l1 e2 $l2 {
lappend l3 [expr "$e1 + $e2"]
}
答案 1 :(得分:0)
如果你有Tcl 8.6,你可以使用新的lmap
命令:
set l1 {1 2 3 4}
set l2 {2 3 4 5}
set l3 [lmap x $l1 y $l2 {expr {$x + $y}}]