的INITIAL_ARRAY
是如何根据键值对TCL数组进行排序?
Key -> Value
B 8
C 10
A 5
E 3
D 1
要基于键得到一个有序数组,我用
set sorted_keys_array [lsort [array names INITIAL_ARRAY]]
得到输出
Key -> Value
A 5
B 8
C 10
D 1
E 3
像明智的,如何让一个有序TCL数组基于的值为的键,如下面的输出?
Key -> Value
C 10
B 8
A 5
E 3
D 1
最后一行应该替换为 ** set result [lsort -integer -index 1 $ x] ** 因为“lsort”产生新列表而不是改变现有列表。 – mkostya
@mkostya,我演示了这个想法,而不是一个完整的程序。此外,还有一些合理的情况是只使用一个命令的返回值而不将它分配给一个变量 - 例如,你可以在第二个例子中包装一个'proc'主体,并且该proc将返回任何'lsort'返回的结果。 – kostix