4
Tcl数组非常适合查找表格,但理论上它们被存储为“无序集合”。无论如何要迭代通过他们的顺序元素被添加到数组而不添加额外的代码来自己跟踪插入顺序?是否可以获取TCL数组中元素的创建顺序/插入顺序?
Tcl数组非常适合查找表格,但理论上它们被存储为“无序集合”。无论如何要迭代通过他们的顺序元素被添加到数组而不添加额外的代码来自己跟踪插入顺序?是否可以获取TCL数组中元素的创建顺序/插入顺序?
据我所知,没有办法从数组中获取元素的顺序返回到它们添加的顺序,而无需自己跟踪插入顺序。获得所需行为的最佳方法是转向使用字典而不是数组。字典确实保留了插入的顺序,并且作为奖励,当你将它们传入或传出特效时,它们更适合使用。
这是Tcl文档有些欠缺的情况之一。我无法找到任何可以做到这一点的方式,但如果“数组”的文档说该顺序是依赖于实现或某事的话,那将会很好。无论如何,你的回答与我的阵列经验相符。 –
+1:数组使用的散列表的实现根本不能维持顺序,而且细节非常复杂,因此“随机重新排序”是一个非常简单的解释。口号确实是替代品,它们具体地维持插入顺序;它有保证。 –