Q: What's the equivalent idiom for what snit would call type variables (or static member variables)?A: On the XOTcl mailing list I received helpful answers from Neophytos Demetriou, Kristoffer Lawson, and Gustaf Neumann. Summarizing here:
Class Chapters Chapters set current_chapter 12345 # Then any object or class can use Chapters set current_chapter # while an instance could do: Chapters aChapter [aChapter info class] set current_chapter 4567 puts [[aChapter info class] set current_chapter] # We can a printCurrentChapter method (an instproc on the Chapters class) as: Chapters instproc printCurrentChapter {} { puts [[my info class] set current_chapter] } # and we call the method aChapter printCurrentChapterAnother possibility is to bring the classes variable into the scope of a method on an object.
Chapters instproc incrChapter {} { [self class] instvar current_chapter incr current_chapter } aChapter incrChapterGustaf in particular pointed out that XOTcl does not need a special construct, since every class is an object as well, and variables kept in a class are nothing special. Note that a programmer can decide which kind of class he is refering to:
- the class which is the type of the object (via my info class)
- the current class, which is currently active (via self class)
XOTcl in prototyping mode XOTcl for prototyping