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

