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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1993-1997 Bell Labs Innovations for Lucent Technologies
  3. '" Copyright (c) 1997 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: variable.n,v 1.4.18.2 2005/02/16 18:53:02 msofer Exp $
  9. '" 
  10. .so man.macros
  11. .TH variable n 8.0 Tcl "Tcl Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. variable - create and initialize a namespace variable
  16. .SH SYNOPSIS
  17. fBvariable fR?fIname value...fR? fIname fR?fIvaluefR?
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. This command is normally used within a
  22. fBnamespace evalfR command to create one or more variables
  23. within a namespace.
  24. Each variable fInamefR is initialized with fIvaluefR.
  25. The fIvaluefR for the last variable is optional.
  26. .PP
  27. If a variable fInamefR does not exist, it is created.
  28. In this case, if fIvaluefR is specified,
  29. it is assigned to the newly created variable.
  30. If no fIvaluefR is specified, the new variable is left undefined.
  31. If the variable already exists,
  32. it is set to fIvaluefR if fIvaluefR is specified
  33. or left unchanged if no fIvaluefR is given.
  34. Normally, fInamefR is unqualified
  35. (does not include the names of any containing namespaces),
  36. and the variable is created in the current namespace.
  37. If fInamefR includes any namespace qualifiers,
  38. the variable is created in the specified namespace.  If the variable
  39. is not defined, it will be visible to the fBnamespace whichfR
  40. command, but not to the fBinfo existsfR command.
  41. .PP
  42. If the fBvariablefR command is executed inside a Tcl procedure,
  43. it creates local variables
  44. linked to the corresponding namespace variables (and therefore these
  45. variables are listed by fBinfo varsfR.)
  46. In this way the fBvariablefR command resembles the fBglobalfR command,
  47. although the fBglobalfR command
  48. only links to variables in the global namespace.
  49. If any fIvaluefRs are given,
  50. they are used to modify the values of the associated namespace variables.
  51. If a namespace variable does not exist,
  52. it is created and optionally initialized.
  53. .PP
  54. A fInamefR argument cannot reference an element within an array.
  55. Instead, fInamefR should reference the entire array,
  56. and the initialization fIvaluefR should be left off.
  57. After the variable has been declared,
  58. elements within the array can be set using ordinary
  59. fBsetfR or fBarrayfR commands.
  60. .SH EXAMPLES
  61. Create a variable in a namespace:
  62. .CS
  63. namespace eval foo {
  64.     fBvariablefR bar 12345
  65. }
  66. .CE
  67. .PP
  68. Create an array in a namespace:
  69. .CS
  70. namespace eval someNS {
  71.     fBvariablefR someAry
  72.     array set someAry {
  73.         someName  someValue
  74.         otherName otherValue
  75.     }
  76. }
  77. .CE
  78. .PP
  79. Access variables in namespaces from a procedure:
  80. .CS
  81. namespace eval foo {
  82.     proc spong {} {
  83.         # Variable in this namespace
  84.         fBvariablefR bar
  85.         puts "bar is $bar"
  86.         # Variable in another namespace
  87.         fBvariablefR ::someNS::someAry
  88.         parray someAry
  89.     }
  90. }
  91. .CE
  92. .SH "SEE ALSO"
  93. global(n), namespace(n), upvar(n)
  94. .SH KEYWORDS
  95. global, namespace, procedure, variable