是否可以在TCL数组中获取元素的创建顺序/插入顺序?

NoM*_*ots 4 associative-array tcl

Tcl数组非常适合查找表,但理论上它们存储为"无序集".无论如何通过顺序迭代它们将元素添加到数组而不添加额外的代码来自己跟踪插入顺序?

Jac*_*son 7

据我所知,无法按照添加顺序从数组中获取元素,而无需自己跟踪插入顺序.获得所需行为的最佳方法是使用字典而不是数组.一个字典确实保留了插入的顺序,当你将它们传入或传出过程时,它们可以更好地处理.

  • +1:数组使用的哈希表的实现根本不维护顺序,细节足够复杂,"随机重新排序"是一个更简单的解释.Dicts确实是替代品,他们特别维持插入顺序; 它是有保证的. (3认同)