Sujet : Re: Are class consts possible?
De : emiliano (at) *nospam* example.invalid (Emiliano)
Groupes : comp.lang.tclDate : 21. Jun 2025, 18:03:33
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20250621140333.d1f4d76c0b58a7a65570a365@example.invalid>
References : 1
User-Agent : Sylpheed 3.5.1 (GTK+ 2.24.32; i686-pc-linux-gnu)
On Fri, 20 Jun 2025 07:58:37 -0000 (UTC)
Mark Summerfield <
m.n.summerfield@gmail.com> wrote:
Is it possible to create class-specific consts i.e., consts that exist
inside a class's namespace?
For example, this does _not_ work:
```
oo::class create Klass {
const SPECIAL special
method say {} { return $SPECIAL }
}
set klass [Klass new]
puts "$Klass::SPECIAL [$klass say]"
```
Maybe there are more straightforward methods, but this one works:
% oo::class create C {
method foo {} { # reads the constant
classvariable CVar
puts $CVar
}
method bar {} { # tries to set the constant
classvariable CVar
set CVar "other value"
}
}
::C
% namespace eval [info object namespace C] {
# defines the constant in the class namespace
const CVar "My class variable"
}
% C create o
::o
% o foo
My class variable
% o bar
can't set "CVar": variable is a constant
Regards
-- Emiliano