Скажем, у меня есть массив в TCL, и я хочу изменить значение элемента, у которого есть ключ, например "First_elem". Как я могу это сделать?
Как заменить/сбросить значение элемента в массиве TCL?
Ответы (1)
Просто установите элемент массива, как и любую другую переменную: set myArray(key) "value"
Вот более полный пример:
array set myArray {
key1 1234
key2 5678
}
echo $myArray(key1)
set myArray(key1) "test" // Change an existing element
set myArray(key3) "hello" // Add a new element
echo $myArray(key1)
person
überjesus
schedule
06.04.2011
Хорошо, но если это список (значение), могу ли я изменить один элемент в этом списке, не касаясь других элементов списка?
- person Narek; 06.04.2011
Вы можете сделать это с помощью функции
lreplace
(заменить элемент в списке). Это заменит второй элемент списка значения key1 в моем примере (значение, конечно, должно быть списком, которого нет в моем примере): set myArray(key1) [lreplace $myArray(key1) 1 1 "hello"]
- person überjesus; 06.04.2011
Вместо '
lreplace
можно использовать lset
. т.е. lset myArray(key1) 1 "new value"
.
- person GrAnd; 06.04.2011
echo
? Сними на минутку свою ракушку ;) Или interp alias "" echo "" puts
- person glenn jackman; 06.04.2011