2018-02-05 17:22:04 +03:00
|
|
|
|
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>case</title>
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
<h1>case</h1>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Команда <strong>case</strong> исполняет один из нескольких скриптов в
|
|
|
|
|
зависимости от полученного значения. </p>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<h2>ОПИСАНИЕ</h2>
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<p> Замечание. Команда case - устаревшая, она поддерживается
|
|
|
|
|
только для совместимости с предыдущими версиями. В последующих
|
|
|
|
|
версиях она может быть опущена. Поэтому предпочтительнее
|
|
|
|
|
использование команды <a
|
|
|
|
|
href=switch.html><strong>switch</strong></a>.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
</p>
|
|
|
|
|
|
2018-02-05 17:22:04 +03:00
|
|
|
|
<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>. Первая использует отдельные аргументы для каждого
|
|
|
|
|
шаблона и команды. Эта форма более удобна, если в образцах или
|
|
|
|
|
командах желательно выполнить какие-либо подстановки. Во второй
|
|
|
|
|
форме все шаблоны и команды объединены в один аргумент, который
|
|
|
|
|
должен быть списком, состоящим из шаблонов и команд. Вторая
|
|
|
|
|
форма позволяет проще записывать многострочные команды,
|
|
|
|
|
поскольку при этом фигурные скобки вокруг списка позволяют не
|
|
|
|
|
ставить обратный слэш в конце каждой строки. Однако из-за этих
|
|
|
|
|
фигурных скобок подстановки в шаблонах и командах не
|
|
|
|
|
производятся. Поэтому одна и та же команда, записанная в
|
|
|
|
|
различных формах, может работать по-разному.
|
2015-10-19 13:27:31 +03:00
|
|
|
|
<//p>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
2018-02-05 17:22:04 +03:00
|
|
|
|
|