Основные понятия и элементы


Переменные: скалярные и массивы

        В Tcl можно определять переменные и использовать их значения при помощи подстановки переменных с символом $, команды set, или нескольких иных механизмов. Нет необходимости специально определять переменные: новая переменная будет автоматически определена сразу же, как только будет использовано новое имя переменной.

        Tcl поддерживает переменные двух типов: скалярные и массивы (векторные). Скалярная переменная имеет только одно значение в каждый момент времени, тогда как переменная-массив может содержать любое количество элементов, имеющих имя (обычно называемое «индексом») и значение. Индексами массива могут быть произвольные строки, необязательно числового вида. Для ссылки на индексы в командах Tcl используются круглые скобки. Например, команда set x(first) 44 изменит значение элемента массива х по имени first на новое: 44. Двумерные массивы можно имитировать использованием индексов, состоящих из нескольких составленных вместе частей. Например, команды

        set a(2.3) 1
        set a(3,6) 2


задают элементы массива а с индексами 2,3 и 3,6.

        В общем, элементы массивов можно употреблять везде, где можно употреблять скалярные переменные. Недопустимо наличие скалярной переменной и массива с одним и тем же именем. Нельзя обращаться к скалярной переменной как к элементу массива. Для преобразования скалярной переменной в массив и наоборот следует удалить существующую переменную при помощи команды unset. Команда array предоставляет набор средств для работы с массивами, в том числе получение списка всех элементов массива и просмотр значений элементов по одному.

        Переменные могут быть локальными или глобальными. Если имя переменной используется тогда, когда не выполняется процедура, то оно автоматически относится к глобальной переменной. Имена переменных, используемых внутри процедуры, обычно ссылаются на локальные переменные, ассоциированные с данным выполнением этой процедуры. Локальные переменные удаляются по окончании работы процедуры. При выполнении процедуры для указания на то, что имя является именем глобальной переменной, может использоваться команда global (она в некотором смысле аналогична extern в С).
Hosted by uCoz