| www.delorie.com/gnu/docs/smalltalk/gst_12.html | search |
![]() Buy GNU books! | |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Global objects of an environment (local or inherited) may be referenced by their symbol used in the source code, e.g.
John goHome |
if the #John -> aMan association exists in the particular environment or
one of its super-environments, all along the way to the root environment.
If an object has to be referenced from another environment (i.e. which is not on the inheritance link) it has to be referenced either relatively to the position of the current environment (using the Super symbol), or absolutely (using the "full pathname" of the object, navigating from Smalltalk through the tree of sub-environments).
For the identification of global objects in another environment a "pathname" of symbols is used. The symbols are separated by blanks, i.e. the "look" to be implemented is that of
Smalltalk Tasks MyTask |
and of
Super Super Peter. |
Its similarity to a sequence of message sends is not casual, and suggests the following syntax for write access:(4)
Smalltalk Tasks MyTask: anotherTask |
This resembles the way accessors are used for other objects. As it is custom in Smalltalk, however, we are reminded by uppercase letters that we are accessing global objects.
In addition, a special syntax has been implemented that returns the Association object for a particular global: so the last example above can be written also like
#{Smalltalk.Tasks.MyTask} value: anotherTask
|
This special kind of literal (called a variable binding) is also valid inside literal arrays.
| webmaster donations bookstore | delorie software privacy |
| Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |