我是TCL的新手并且一直在练习。现在,我正在读取TCL中的数组,我正在尝试反转数组。数组TestArr是
Zero Orange
First Apple
Second Banana
所以,基本上我想做到它
Zero Banana
First Apple
Second Orange
但是,我找不到找到第一个元素的索引或最后一个元素的索引的方法因为使用了
foreach {index value} [array get TestArr]
将无序返回索引值。
c ++代码将是:
for(int i=0;i>end;end--,i++)
{
int temp = TestArr[i];
TestArr[i] = TestArr[j];
TestArr[j] = temp;
}
有没有办法在TCL中实现这个目标?
答案 0 :(得分:3)
在TCL中,“数组”实际上是perl中的hash map
或C ++中的std::map
或python中的dict
。因此它们是无序的,因此重新排序它们是没有意义的。
您真正想要的是在TCL中称为list
。并且反转列表的功能称为lreverse
。
来自以下评论:
8.5中添加了 lreverse
。在8.4中,使用以下内容进行编码:for {set i [llength $lst]} {[incr i -1] >= 0} {} {lappend reversed [lindex $lst $i]}
- Donal Fellows