双阵列对应
我刚刚发现自己在 Tcl 中有两个数组。
我得到了 $W_Array
和 $P_Array
。
我需要遍历一个数组,事先不知道每个数组的大小是多少,并且仅当两个数组都有值时才执行命令。是的,数组长度可能不同。
这样做的最佳方法是什么?
I just found myself in a position where I have two arrays in Tcl.
I'm given $W_Array
and $P_Array
.
I need to traverse through one array not knowing what the size of each one is before hand, and execute a command only when there is a value for both arrays. Yes the array lengths could be different.
What is the best way of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
其他答案跳到使用列表,我想你的意思是 Tcl 的数组,也称为哈希映射或关联数组。
我认为你在要求类似的东西:
The other answers jumped to using lists, I presume you mean Tcl's array, which are also called hash maps or associative arrays.
I think you're asking for something like:
不确定“两个数组的值”到底是什么意思,但是 tcl 的
foreach
支持一次对多个数组进行迭代......所以你可以说例如foreach w $W_Array p $P_Array {
如果 {$w == $val && $p == $val} {
...
}
}
当数组长度不同时,
foreach
将返回最长数组中的所有值以及任意数组中缺失元素的空值{}
更短的数组。Not sure exactly what you mean by "a value for both arrays", but tcl's
foreach
supports iteration over multiple arrays at once... so you can say e.g.foreach w $W_Array p $P_Array {
if {$w == $val && $p == $val} {
...
}
}
When the arrays are not of the same length,
foreach
will return all values from the longest array and the empty value{}
for the missing elements in any shorter arrays.使用
llength
命令来查明数组是否包含值。Use
llength
command to find out if the arrays contain a value.