| [25] | 1 | '\" |
|---|
| 2 | '\" Copyright (c) 1993 The Regents of the University of California. |
|---|
| 3 | '\" Copyright (c) 1994-1996 Sun Microsystems, Inc. |
|---|
| 4 | '\" Copyright (c) 2001 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved. |
|---|
| 5 | '\" |
|---|
| 6 | '\" See the file "license.terms" for information on usage and redistribution |
|---|
| 7 | '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
|---|
| 8 | '\" |
|---|
| 9 | '\" RCS: @(#) $Id: lindex.n,v 1.17 2008/03/26 09:59:22 dkf Exp $ |
|---|
| 10 | '\" |
|---|
| 11 | .so man.macros |
|---|
| 12 | .TH lindex n 8.4 Tcl "Tcl Built-In Commands" |
|---|
| 13 | .BS |
|---|
| 14 | '\" Note: do not modify the .SH NAME line immediately below! |
|---|
| 15 | .SH NAME |
|---|
| 16 | lindex \- Retrieve an element from a list |
|---|
| 17 | .SH SYNOPSIS |
|---|
| 18 | \fBlindex \fIlist ?index...?\fR |
|---|
| 19 | .BE |
|---|
| 20 | .SH DESCRIPTION |
|---|
| 21 | .PP |
|---|
| 22 | The \fBlindex\fR command accepts a parameter, \fIlist\fR, which |
|---|
| 23 | it treats as a Tcl list. It also accepts zero or more \fIindices\fR into |
|---|
| 24 | the list. The indices may be presented either consecutively on the |
|---|
| 25 | command line, or grouped in a |
|---|
| 26 | Tcl list and presented as a single argument. |
|---|
| 27 | .PP |
|---|
| 28 | If no indices are presented, the command takes the form: |
|---|
| 29 | .CS |
|---|
| 30 | lindex list |
|---|
| 31 | .CE |
|---|
| 32 | or |
|---|
| 33 | .CS |
|---|
| 34 | lindex list {} |
|---|
| 35 | .CE |
|---|
| 36 | In this case, the return value of \fBlindex\fR is simply the value of the |
|---|
| 37 | \fIlist\fR parameter. |
|---|
| 38 | .PP |
|---|
| 39 | When presented with a single index, the \fBlindex\fR command |
|---|
| 40 | treats \fIlist\fR as a Tcl list and returns the |
|---|
| 41 | \fIindex\fR'th element from it (0 refers to the first element of the list). |
|---|
| 42 | In extracting the element, \fBlindex\fR observes the same rules |
|---|
| 43 | concerning braces and quotes and backslashes as the Tcl command |
|---|
| 44 | interpreter; however, variable |
|---|
| 45 | substitution and command substitution do not occur. |
|---|
| 46 | If \fIindex\fR is negative or greater than or equal to the number |
|---|
| 47 | of elements in \fIvalue\fR, then an empty |
|---|
| 48 | string is returned. |
|---|
| 49 | .VS 8.5 |
|---|
| 50 | The interpretation of each simple \fIindex\fR value is the same as |
|---|
| 51 | for the command \fBstring index\fR, supporting simple index |
|---|
| 52 | arithmetic and indices relative to the end of the list. |
|---|
| 53 | .VE 8.5 |
|---|
| 54 | .PP |
|---|
| 55 | If additional \fIindex\fR arguments are supplied, then each argument is |
|---|
| 56 | used in turn to select an element from the previous indexing operation, |
|---|
| 57 | allowing the script to select elements from sublists. The command, |
|---|
| 58 | .CS |
|---|
| 59 | lindex $a 1 2 3 |
|---|
| 60 | .CE |
|---|
| 61 | or |
|---|
| 62 | .CS |
|---|
| 63 | lindex $a {1 2 3} |
|---|
| 64 | .CE |
|---|
| 65 | is synonymous with |
|---|
| 66 | .CS |
|---|
| 67 | lindex [lindex [lindex $a 1] 2] 3 |
|---|
| 68 | .CE |
|---|
| 69 | .SH EXAMPLES |
|---|
| 70 | .CS |
|---|
| 71 | \fBlindex\fR {a b c} |
|---|
| 72 | \fI\(-> a b c\fR |
|---|
| 73 | \fBlindex\fR {a b c} {} |
|---|
| 74 | \fI\(-> a b c\fR |
|---|
| 75 | \fBlindex\fR {a b c} 0 |
|---|
| 76 | \fI\(-> a\fR |
|---|
| 77 | \fBlindex\fR {a b c} 2 |
|---|
| 78 | \fI\(-> c\fR |
|---|
| 79 | \fBlindex\fR {a b c} end |
|---|
| 80 | \fI\(-> c\fR |
|---|
| 81 | \fBlindex\fR {a b c} end-1 |
|---|
| 82 | \fI\(-> b\fR |
|---|
| 83 | \fBlindex\fR {{a b c} {d e f} {g h i}} 2 1 |
|---|
| 84 | \fI\(-> h\fR |
|---|
| 85 | \fBlindex\fR {{a b c} {d e f} {g h i}} {2 1} |
|---|
| 86 | \fI\(-> h\fR |
|---|
| 87 | \fBlindex\fR {{{a b} {c d}} {{e f} {g h}}} 1 1 0 |
|---|
| 88 | \fI\(-> g\fR |
|---|
| 89 | \fBlindex\fR {{{a b} {c d}} {{e f} {g h}}} {1 1 0} |
|---|
| 90 | \fI\(-> g\fR |
|---|
| 91 | .CE |
|---|
| 92 | .SH "SEE ALSO" |
|---|
| 93 | list(n), lappend(n), linsert(n), llength(n), lsearch(n), |
|---|
| 94 | lset(n), lsort(n), lrange(n), lreplace(n), |
|---|
| 95 | .VS 8.5 |
|---|
| 96 | string(n) |
|---|
| 97 | .VE |
|---|
| 98 | |
|---|
| 99 | .SH KEYWORDS |
|---|
| 100 | element, index, list |
|---|