Предсказуемый порядок ответа на имена массивов Tcl? - PullRequest
1 голос
/ 15 июня 2009

Я знаю, что имена, возвращаемые [именами массивов X], имеют неопределенный порядок, но всегда ли они находятся в одинаковом неопределенном порядке?

Я просматриваю очень большой массив и хотел бы записать прогресс в файл в случае сбоя, чтобы я мог возобновить его частично.

PS. Быстрый эксперимент предполагает, что это всегда один и тот же «случайный» порядок, но это не значит, что это правда!

1 Ответ

5 голосов
/ 15 июня 2009

Короткий ответ: вы не можете полагаться на ордер, и вам лучше всего [lsort [имена массивов X]] и использовать этот ордер.

Длинный ответ заключается в том, что порядок должен быть стабильным, если ключи одинаковы (и это та же версия Tcl) ... но я все равно не буду на это полагаться.

Если вы используете Tcl 8.5 или более позднюю версию, вы можете захотеть использовать Dict вместо массива. Порядок элементов для Dict - это порядок, в котором они были добавлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...