Как создать массив списков в Tcl? - PullRequest
0 голосов
/ 18 июня 2020

Мне нужно сохранить количество списков в массиве.

У меня есть команда, которая возвращает список: Предположим, это CommandReturninglist

set aa [ CommandReturninglist{0} ]

Уточнение: CommandReturninglist принимает входной аргумент 0 .

Мне нужно использовать его десять раз и сохранить списки, возвращенные в массив.

for {set i 0 } { $i < 10 } { incr i } {
set d($i) [ CommandReturninglist{$i} ]
puts $d($i)
}

Я не могу сохранить список, как показано на выше случай. Здесь $ i in CommandReturninglist {$ i} - необходимый аргумент.

Пожалуйста, предложите способ.

1 Ответ

1 голос
/ 18 июня 2020

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

for {set i 0 } { $i < 10 } { incr i } {
    set d($i) [CommandReturninglist $i]
    puts $d($i)
}

Также возможно для команд ( эффективно) принимают переменные по ссылке, с которыми они могут работать (способ перемещать целые массивы через границы процедур) или передавать списки списков (или словари списков, или ...) и использовать их.

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