Initial release
This commit is contained in:
116
hlp/en/tcl/switch.htm
Normal file
116
hlp/en/tcl/switch.htm
Normal file
@@ -0,0 +1,116 @@
|
||||
<HTML><HEAD><TITLE>Tcl Built-In Commands - switch manual page</TITLE></HEAD><BODY>
|
||||
<DL>
|
||||
<DD><A HREF="switch.htm#M2" NAME="L1160">NAME</A>
|
||||
<DL><DD>switch - Evaluate one of several scripts, depending on a given value</DL>
|
||||
<DD><A HREF="switch.htm#M3" NAME="L1161">SYNOPSIS</A>
|
||||
<DL>
|
||||
<DD><B>switch </B>?<I>options</I>?<I> string pattern body </I>?<I>pattern body </I>...?
|
||||
<DD><B>switch </B>?<I>options</I>?<I> string </I>{<I>pattern body </I>?<I>pattern body </I>...?}
|
||||
</DL>
|
||||
<DD><A HREF="switch.htm#M4" NAME="L1162">DESCRIPTION</A>
|
||||
<DL>
|
||||
<DD><A HREF="switch.htm#M5" NAME="L1163"><B>-exact</B></A>
|
||||
<DD><A HREF="switch.htm#M6" NAME="L1164"><B>-glob</B></A>
|
||||
<DD><A HREF="switch.htm#M7" NAME="L1165"><B>-regexp</B></A>
|
||||
<DD><A HREF="switch.htm#M8" NAME="L1166"><B>- -</B></A>
|
||||
</DL>
|
||||
<DD><A HREF="switch.htm#M9" NAME="L1167">SEE ALSO</A>
|
||||
<DD><A HREF="switch.htm#M10" NAME="L1168">KEYWORDS</A>
|
||||
</DL><HR>
|
||||
<H3><A NAME="M2">NAME</A></H3>
|
||||
switch - Evaluate one of several scripts, depending on a given value
|
||||
<H3><A NAME="M3">SYNOPSIS</A></H3>
|
||||
<B>switch </B>?<I>options</I>?<I> string pattern body </I>?<I>pattern body </I>...?<BR>
|
||||
<B>switch </B>?<I>options</I>?<I> string </I>{<I>pattern body </I>?<I>pattern body </I>...?}<BR>
|
||||
<H3><A NAME="M4">DESCRIPTION</A></H3>
|
||||
The <B>switch</B> command matches its <I>string</I> argument against each of
|
||||
the <I>pattern</I> arguments in order.
|
||||
As soon as it finds a <I>pattern</I> that matches <I>string</I> it
|
||||
evaluates the following <I>body</I> argument by passing it recursively
|
||||
to the Tcl interpreter and returns the result of that evaluation.
|
||||
If the last <I>pattern</I> argument is <B>default</B> then it matches
|
||||
anything.
|
||||
If no <I>pattern</I> argument
|
||||
matches <I>string</I> and no default is given, then the <B>switch</B>
|
||||
command returns an empty string.
|
||||
<P>
|
||||
If the initial arguments to <B>switch</B> start with <B>-</B> then
|
||||
they are treated as options. The following options are
|
||||
currently supported:
|
||||
<P>
|
||||
<DL>
|
||||
<P><DT><A NAME="M5"><B>-exact</B></A><DD>
|
||||
Use exact matching when comparing <I>string</I> to a pattern. This
|
||||
is the default.
|
||||
<P><DT><A NAME="M6"><B>-glob</B></A><DD>
|
||||
When matching <I>string</I> to the patterns, use glob-style matching
|
||||
(i.e. the same as implemented by the <B><A HREF="../TkCmd/string.htm">string match</A></B> command).
|
||||
<P><DT><A NAME="M7"><B>-regexp</B></A><DD>
|
||||
When matching <I>string</I> to the patterns, use regular
|
||||
expression matching
|
||||
(as described in the <B><A HREF="../TkCmd/re_syntax.htm">re_syntax</A></B> reference page).
|
||||
<P><DT><A NAME="M8"><B>- -</B></A><DD>
|
||||
Marks the end of options. The argument following this one will
|
||||
be treated as <I>string</I> even if it starts with a <B>-</B>.
|
||||
<P></DL>
|
||||
<P>
|
||||
Two syntaxes are provided for the <I>pattern</I> and <I>body</I> arguments.
|
||||
The first uses a separate argument for each of the patterns and commands;
|
||||
this form is convenient if substitutions are desired on some of the
|
||||
patterns or commands.
|
||||
The second form places all of the patterns and commands together into
|
||||
a single argument; the argument must have proper list structure, with
|
||||
the elements of the list being the patterns and commands.
|
||||
The second form makes it easy to construct multi-line switch commands,
|
||||
since the braces around the whole list make it unnecessary to include a
|
||||
backslash at the end of each line.
|
||||
Since the <I>pattern</I> arguments are in braces in the second form,
|
||||
no command or variable substitutions are performed on them; this makes
|
||||
the behavior of the second form different than the first form in some
|
||||
cases.
|
||||
<P>
|
||||
If a <I>body</I> is specified as ``<B>-</B>'' it means that the <I>body</I>
|
||||
for the next pattern should also be used as the body for this
|
||||
pattern (if the next pattern also has a body of ``<B>-</B>''
|
||||
then the body after that is used, and so on).
|
||||
This feature makes it possible to share a single <I>body</I> among
|
||||
several patterns.
|
||||
<P>
|
||||
Beware of how you place comments in <B>switch</B> commands. Comments
|
||||
should only be placed <B>inside</B> the execution body of one of the
|
||||
patterns, and not intermingled with the patterns.
|
||||
<P>
|
||||
Below are some examples of <B>switch</B> commands:
|
||||
<PRE><B>switch abc a - b {format 1} abc {format 2} default {format 3}</B></PRE>
|
||||
will return <B>2</B>,
|
||||
<PRE><B>switch -regexp aaab {
|
||||
^a.*b$ -
|
||||
b {format 1}
|
||||
a* {format 2}
|
||||
default {format 3}
|
||||
}</B></PRE>
|
||||
will return <B>1</B>, and
|
||||
<PRE><B>switch xyz {
|
||||
a
|
||||
-
|
||||
b
|
||||
{
|
||||
# Correct Comment Placement
|
||||
format 1
|
||||
}
|
||||
a*
|
||||
{format 2}
|
||||
default
|
||||
{format 3}
|
||||
}</B></PRE>
|
||||
will return <B>3</B>.
|
||||
|
||||
<H3><A NAME="M9">SEE ALSO</A></H3>
|
||||
<B><A HREF="../TkCmd/for.htm">for</A></B>, <B><A HREF="../TkCmd/if.htm">if</A></B>, <B><A HREF="../TkCmd/regexp.htm">regexp</A></B>
|
||||
<H3><A NAME="M10">KEYWORDS</A></H3>
|
||||
<A href="../Keywords/S.htm#switch">switch</A>, <A href="../Keywords/M.htm#match">match</A>, <A href="../Keywords/R.htm#regular expression">regular expression</A>
|
||||
<HR><PRE>
|
||||
<A HREF="../copyright.htm">Copyright</A> © 1993 The Regents of the University of California.
|
||||
<A HREF="../copyright.htm">Copyright</A> © 1994-1997 Sun Microsystems, Inc.
|
||||
<A HREF="../copyright.htm">Copyright</A> © 1995-1997 Roger E. Critchlow Jr.</PRE>
|
||||
</BODY></HTML>
|
Reference in New Issue
Block a user