Подстановка массива TCL - PullRequest
0 голосов
/ 09 июля 2020

В TCL (под управлением v8.6.6) я хочу создать массив с заменой одного или нескольких значений массива на значение другой переменной.

Если бы мы были в C Я напишу

float a = 10;
float b[4] = {1.0, 2.0, 3.0, 4.0};
b[2]=a;

, и если я напечатаю на stdout, я получу 1.0 10.0 3.3 4.0.

Вместо этого в TCL я начал с простого примера. Я написал

set a 10.0
set b $a

puts $b

Я получил 10.0 на выходе, но если я хочу сделать то же самое в массиве, я написал

set a 10.0
set b {1.0 $a 3.0 4.0}

puts $b

, и я ожидаю

1.0 10.0 3.0 4.0

но я получил

-0.5 $a 0.5 0.79

Есть идеи?

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

фигурные скобки {} предотвращение подстановки, попробуйте:

set b [list 1.0 $a 3.0 4.0]
0 голосов
/ 09 июля 2020

Хотя вы обнаружили, что создание списка с заменами выполняется с помощью команды list, вот как сделать присвоение элементу, эквивалентному b[2]=a; из C.

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