Это не дает именно того, что вы ищете, но, учитывая, что вы приехали из C, где вам нужно иметь целевой массив для начала ... возможно, он может достичь вашей реальной цели.
Цикл foreach
может принимать в качестве переменной хранения список имен. Каждое имя получает одно из значений из списка ввода. Таким образом, вы можете использовать его для перебора нескольких значений из списка ввода каждый раз:
set result {}
foreach {x1 x2} {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} {
lappend result $x1
}
puts $result
# 1 3 5 7 9 11 13 15 17 19
Абсолютно не имеет отношения к вашей проблеме, но также приятно то, что она может принимать несколько имен и списков переменных:
set result {}
foreach {a1 a2} {1 2 3 4 5 6} b {A B C} {
lappend result $a1 $b $a2 -
}
puts $result
# 1 A 2 - 3 B 4 - 5 C 6