如何在TCL中反转数组

时间:2012-07-16 03:16:49

标签: tcl

我是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中实现这个目标?

1 个答案:

答案 0 :(得分:3)

在TCL中,“数组”实际上是perl中的hash map或C ++中的std::map或python中的dict。因此它们是无序的,因此重新排序它们是没有意义的。

您真正想要的是在TCL中称为list。并且反转列表的功能称为lreverse

TCL List documentation

lreverse documentation

来自以下评论:

8.5中添加了

lreverse。在8.4中,使用以下内容进行编码:for {set i [llength $lst]} {[incr i -1] >= 0} {} {lappend reversed [lindex $lst $i]} - Donal Fellows