lset.n
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 2001 by Kevin B. Kenny.  All rights reserved.
  3. '"
  4. '" See the file "license.terms" for information on usage and redistribution
  5. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  6. '" 
  7. '" RCS: @(#) $Id: lset.n,v 1.6.2.1 2003/12/01 21:29:34 msofer Exp $
  8. '" 
  9. .so man.macros
  10. .TH lset n 8.4 Tcl "Tcl Built-In Commands"
  11. .BS
  12. '" Note:  do not modify the .SH NAME line immediately below!
  13. .SH NAME
  14. lset - Change an element in a list
  15. .SH SYNOPSIS
  16. fBlset fIvarName ?index...? newValuefR
  17. .BE
  18. .SH DESCRIPTION
  19. .PP
  20. The fBlsetfR command accepts a parameter, fIvarNamefR, which
  21. it interprets as the name of a variable containing a Tcl list. 
  22. It also accepts zero or more fIindicesfR into
  23. the list.  The indices may be presented either consecutively on the
  24. command line, or grouped in a
  25. Tcl list and presented as a single argument.
  26. Finally, it accepts a new value for an element of fIvarNamefR.
  27. .PP
  28. If no indices are presented, the command takes the form:
  29. .CS
  30. lset varName newValue
  31. .CE
  32. or
  33. .CS
  34. lset varName {} newValue
  35. .CE
  36. In this case, fInewValuefR replaces the old value of the variable
  37. fIvarNamefR.
  38. .PP
  39. When presented with a single index, the fBlsetfR command
  40. treats the content of the fIvarNamefR variable as a Tcl list.
  41. It addresses the fIindexfR'th element in it 
  42. (0 refers to the first element of the list).
  43. When interpreting the list, fBlsetfR observes the same rules
  44. concerning braces and quotes and backslashes as the Tcl command
  45. interpreter; however, variable
  46. substitution and command substitution do not occur.
  47. The command constructs a new list in which the designated element is
  48. replaced with fInewValuefR.  This new list is stored in the
  49. variable fIvarNamefR, and is also the return value from the fBlsetfR
  50. command.
  51. .PP
  52. If fIindexfR is negative or greater than or equal to the number
  53. of elements in fI$varNamefR, then an error occurs.
  54. .PP
  55. If fIindexfR has the value fBendfR, it refers to the last element
  56. in the list, and fBend-fIintegerfR refers to the last element in
  57. the list minus the specified integer offset.
  58. .PP
  59. If additional fIindexfR arguments are supplied, then each argument is
  60. used in turn to address an element within a sublist designated
  61. by the previous indexing operation,
  62. allowing the script to alter elements in sublists.  The command,
  63. .CS
  64. lset a 1 2 newValue
  65. .CE
  66. or
  67. .CS
  68. lset a {1 2} newValue
  69. .CE
  70. replaces element 2 of sublist 1 with fInewValuefR.
  71. .PP
  72. The integer appearing in each fIindexfR argument must be greater
  73. than or equal to zero.  The integer appearing in each fIindexfR
  74. argument must be strictly less than the length of the corresponding
  75. list.  In other words, the fBlsetfR command cannot change the size
  76. of a list.  If an index is outside the permitted range, an error is reported.
  77. .SH EXAMPLES
  78. In each of these examples, the initial value of fIxfR is:
  79. .CS
  80. set x [list [list a b c] [list d e f] [list g h i]]
  81.   => {a b c} {d e f} {g h i}
  82. .CE
  83. The indicated return value also becomes the new value of fIxfR
  84. (except in the last case, which is an error which leaves the value of
  85. fIxfR unchanged.)
  86. .CS
  87. lset x {j k l} => j k l
  88. lset x {} {j k l} => j k l
  89. lset x 0 j => j {d e f} {g h i}
  90. lset x 2 j => {a b c} {d e f} j
  91. lset x end j => {a b c} {d e f} j
  92. lset x end-1 j => {a b c} j {g h i}
  93. lset x 2 1 j => {a b c} {d e f} {g j i}
  94. lset x {2 1} j => {a b c} {d e f} {g j i}
  95. lset x {2 3} j => fIlist index out of rangefR
  96. .CE
  97. In the following examples, the initial value of fIxfR is:
  98. .CS
  99. set x [list [list [list a b] [list c d]] e
  100.             [list [list e f] [list g h]]]
  101.  => {{a b} {c d}} {{e f} {g h}}
  102. .CE
  103. The indicated return value also becomes the new value of fIxfR.
  104. .CS
  105. lset x 1 1 0 j => {{a b} {c d}} {{e f} {j h}}
  106. lset x {1 1 0} j => {{a b} {c d}} {{e f} {j h}}
  107. .CE
  108. .SH "SEE ALSO"
  109. list(n), lappend(n), lindex(n), linsert(n), llength(n), lsearch(n), 
  110. lsort(n), lrange(n), lreplace(n)
  111. .SH KEYWORDS
  112. element, index, list, replace, set