1

[配列名X]によって返される名前が未定義の順序であることは知っていますが、それらは常に同じ未定義の順序ですか?

私は非常に大きな配列を調べていますが、クラッシュした場合に備えて進行状況をファイルに記録したいので、途中で再開できます。

PS。簡単な実験は、それが常に同じ「ランダム」な順序であることを意味しますが、これはそれが真実であるという意味ではありません!

4

1 に答える 1

5

短い答えは、順序に依存することはできず、最善の策は [lsort [array names X]] であり、その順序を使用することです。

長い答えは、キーが同じ (および同じ Tcl バージョン) である限り、順序は安定しているはずですが、それでも私はそれに依存しません。

Tcl 8.5 以降を使用している場合は、配列の代わりに Dict の使用を検討することをお勧めします。Dict の要素の順序は、それらが追加された順序です。

于 2009-06-15T13:33:55.893 に答える