projman/hlp/ru/tcl/proc.html

72 lines
5.2 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
2015-10-19 13:27:31 +03:00
<html>
<head>
<title>proc</title>
</head>
<body>
<h1>proc</h1>
<p>Создает Tcl-процедуры.</p>
2015-10-19 13:27:31 +03:00
<h2>СИНТАКСИС</h2>
2015-10-19 13:27:31 +03:00
<pre>
<strong>proc</strong> <em>name</em> <em>args</em> <em>body</em>
</pre>
<h2>ОПИСАНИЕ</h2>
2015-10-19 13:27:31 +03:00
<p>Команда <strong>proc</strong> создает новую Tcl-процедуру с именем
<em>name</em>, если такой процедуры ранее не было, и замещает
ранее существовавшую процедуру или команду с таким именем, если
она была. При вызове новой процедуры скрипт <em>body</em>
передается на выполнение Tcl-интерпретатору. Обычно имя
процедуры указывается без указания имени пространства имен. При
этом новая процедура создается в текущем пространстве
имен. Однако, если пространство имен указано явно, она создается
в указанном пространстве. Аргумент <em>args</em> определяет
формальные аргументы процедуры и представляет собой список
(возможно, пустой), каждый элемент которого представляет
описание одного формального параметра. Каждое такое описание
само является списком из одного или двух элементов. Первый
элемент списка определяет имя формального параметра. Второй
элемент списка, если он указан, определяет значение по умолчанию
для данного параметра.</p>
2015-10-19 13:27:31 +03:00
<p>При выполнении процедуры для каждого формального параметра
создается локальная переменная. Ей присваивается значение
соответствующего аргумента, указанного при вызове процедуры, или
значение по умолчанию. Аргумент, для которого при определении
процедуры указано значение по умолчанию, может не присутствовать
в вызове процедуры. Однако общее количество указанных параметров
должно быть достаточным для аргументов, не имеющих значения по
умолчанию, но не больше общего числа формальных параметров. Если
это условие выполнено, все аргументы процедуры собираются в один
список (как при исполнении команды <a
href=list.html><strong>list</strong></a>). Эта комбинированная величина
присваивается локальной переменной <em>args</em>.</p>
2015-10-19 13:27:31 +03:00
<p>При исполнении тела процедуры имена переменных обычно считаются
именами локальных переменных, которые создаются автоматически по
мере необходимости и удаляются после завершения процедуры. По
одной локальной переменной создается также для каждого аргумента
процедуры. Для использования глобальных переменных необходимо
использовать команду <a href=global.html><strong>global</strong></a> или
<a href=upvar.html><strong>upvar</strong></a>. Для использования
переменных из пространства имен необходимо использовать команду
<a href= variable.html><strong>variable</strong></a> или
<a href=upvar.html><strong>upvar</strong></a>.</p>
2015-10-19 13:27:31 +03:00
<p>Команда <strong>proc</strong> возвращает пустую строку. При вызове
процедуры возвращается величина, заданная в команде <a href=
return.html><strong>return</strong></a>. Если в процедуре не выполнялась
явная команда <strong>return</strong>, она возвращает результат выполнения
последней команды, выполнявшейся в теле процедуры. Если при
выполнении процедуры произошла ошибка, то процедура в целом
возвращает эту ошибку.</p>
2015-10-19 13:27:31 +03:00
</body>
</html>