60 lines
2.7 KiB
HTML
60 lines
2.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<title>case</title>
|
||
</head>
|
||
|
||
<body>
|
||
<h1>case</h1>
|
||
|
||
<p> Команда <strong>case</strong> исполняет один из нескольких скриптов в
|
||
зависимости от полученного значения. </p>
|
||
|
||
<pre>
|
||
<strong>case</strong> <em>string</em> ?<em>in</em>? <em>patList</em> <em>body</em> ?<em>patList</em> <em>body</em>...?
|
||
<strong>case</strong> <em>string</em> ?<em>in</em>? {<em>patList</em> <em>body</em> ?<em>patList</em> <em>body</em>...?}
|
||
</pre>
|
||
|
||
<h2>ОПИСАНИЕ</h2>
|
||
|
||
<p> Замечание. Команда case - устаревшая, она поддерживается
|
||
только для совместимости с предыдущими версиями. В последующих
|
||
версиях она может быть опущена. Поэтому предпочтительнее
|
||
использование команды <a
|
||
href="switch.html"><strong>switch</strong></a>.
|
||
</p>
|
||
|
||
<p>Команда сравнивает <em>string</em> со всеми аргументами
|
||
<em>patList</em> по очереди. Каждый аргумент <em>patList</em>
|
||
представляет собой один или несколько (список) образцов. Если
|
||
<em>string</em> соответствует одному из образцов, то <strong>case</strong>
|
||
рекурсивно вызывает интерпретатор Tcl, передает ему следующий за
|
||
этим списком образцов скрипт <em>body</em> для выполнения и
|
||
возвращает результат этого выполнения. Каждый аргумент
|
||
<em>patList</em> состоит из одного или нескольких образцов. Каждый
|
||
образец может содержать спецсимволы, как в команде <a
|
||
href="string.html#match"><strong>string match</strong></a>. Кроме
|
||
того, есть специальный образец <strong>default</strong>. Соответствующий
|
||
ему скрипт выполняется, если <em>string</em> не соответствует
|
||
никакому другому образцу.</p>
|
||
|
||
<p>Если <em>string</em> не соответствует ни одному из образцов, а
|
||
образец <strong>default</strong> не используется, то <strong>case</strong> вернет
|
||
пустую строку.</p>
|
||
|
||
<p>У команды есть две формы записи для аргументов <em>patList</em> и
|
||
<em>body</em>. Первая использует отдельные аргументы для каждого
|
||
шаблона и команды. Эта форма более удобна, если в образцах или
|
||
командах желательно выполнить какие-либо подстановки. Во второй
|
||
форме все шаблоны и команды объединены в один аргумент, который
|
||
должен быть списком, состоящим из шаблонов и команд. Вторая
|
||
форма позволяет проще записывать многострочные команды,
|
||
поскольку при этом фигурные скобки вокруг списка позволяют не
|
||
ставить обратный слэш в конце каждой строки. Однако из-за этих
|
||
фигурных скобок подстановки в шаблонах и командах не
|
||
производятся. Поэтому одна и та же команда, записанная в
|
||
различных формах, может работать по-разному.
|
||
<//p>
|
||
</body>
|
||
</html>
|