scope(n) [incr Tcl] scope(n) ______________________________________________________________________________
NAME
itcl::scope - capture the namespace context for a variable
SYNOPSIS
itcl::scope name ______________________________________________________________________________
DESCRIPTION
Creates a scoped value for the specified name, which must be a variable name. If the name is an instance variable, then the scope command returns a name which will resolve in any context as an instance vari- able belonging to object. The precise format of this name is an inter- nal detail to Itcl. Use of such a scoped value makes it possible to use instance variables in conjunction with widgets. For example, if you have an object with a private variable x, and you can use x in con- junction with the -textvariable option of an entry widget. Before itcl3.0, only common variables could be used in this manner. If the name is not an instance variable, then it must be a common vari- able or a global variable. In that case, the scope command returns the fully qualified name of the variable, e.g., ::foo::bar::x. If the name is not recognized as a variable, the scope command returns an error. Ordinary variable names refer to variables in the global namespace. A scoped value captures a variable name together with its namespace con- text in a way that allows it to be referenced properly later. It is needed, for example, to wrap up variable names when a Tk widget is used within a namespace: namespace foo { private variable mode 1 radiobutton .rb1 -text "Mode #1" -variable [scope mode] -value 1 pack .rb1 radiobutton .rb2 -text "Mode #2" -variable [scope mode] -value 2 pack .rb2 } Radiobuttons .rb1 and .rb2 interact via the variable "mode" contained in the namespace "foo". The scope command guarantees this by returning the fully qualified variable name ::foo::mode. You should never attempt to craft your own scoped variable names, even if you believe you've flawlessly reverse-engineered the encoding. Instead, you should always use the scope command to generate the vari- able name dynamically. Then, you can pass that name to a widget or to any other bit of code in your program.
KEYWORDS
code, namespace, variable itcl scope(n)
tcl 8.6.9 - Generated Fri Nov 16 19:16:16 CST 2018