projman/hlp/ru/tcl/case.html
2018-02-05 17:23:37 +03:00

61 lines
4.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>