Уроки Tcl

Начало Уроки Tk Файлы
Статьи Уроки Tcl Гостевая книга
Предыдущий урок - #10: Цикл for, команда incr

#11: Добавление новых команд - proc

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

В Tcl нет разницы между функциями или командами. Здесь нет зарезервированных слов как в C, BASIC, PASCAL и т.д. Когда интерпретатор начинает работу, у него есть список известных функций, который он использует для разбора строки. Эти команды Tcl знает по умолчанию. Эти команды включают while, for, set, puts, и т.д.

Команда proc добавляет новую процедуру в список известных команд. Синтаксис команды proc следующий:

proc имяПроцедуры аргументы команда

Когда proc выполняется, она создаёт структуру, определяющую процедуру, и добавляет её и имяПроцедуры в таблицу, которая используется при разборе команд. Если команда с таким именем уже существует, то будет заменена новой версией.

Аргументы это список аргументов, которые будут переданы процедуре. Когда вызывается имяПроцедуры в ней создаются локальные переменный с такими же именами, и в них записываются значения переданных аргументов.

Команда - код, который будет выполняться, при вызове имяПроцедуры.

Значение, которое возвратит процедура может быть задано командой return. Команда return завершает процедуру и возвращает аргумент, как результат выполнения процедуры. Если такой команды нет, то после завершения процедуры управление передаётся обратно основной команде, а возвращается значение последней выполненной команды.

Несколько слово о стиле программирования:

Используйте процедуры. Используйте их часто. Программы Tcl (как и все другие программы) должны содержать очень мало кода в основном коде, и большинство вычислений должно производиться в процедурах. Если вы правильно создаёте процедуры, то позже сможете их использовать в других программах. Основной код сложно разделять на куски и перемещать.

Процедуры облегчают понимание и редактирование кода, упрощают отладку.

Пример:

proc sum {arg1 arg2} {
	set x [expr $arg1+$arg2];
	return $x
}

puts " Сумма 2 + 3 равна: [sum 2 3]\n\n"

proc for {a b c} {
	puts "Команда for заменана командой puts";
	puts "аргументы: $a\n$b\n$c\n"
}

for {set i 1} {$i < 10} {incr i}

Следующий урок - #12: Варианты аргументов процедур и возвращаемых значений
Горбачев "Yurez" Юрий  
Хостинг от uCoz