Sujet : Re: Are class consts possible?
De : emiliano (at) *nospam* example.invalid (Emiliano)
Groupes : comp.lang.tclDate : 21. Jun 2025, 22:16:15
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20250621181615.654ec599781f56e03304bb35@example.invalid>
References : 1 2
User-Agent : Sylpheed 3.5.1 (GTK+ 2.24.32; i686-pc-linux-gnu)
On Sat, 21 Jun 2025 14:03:33 -0300
Emiliano <
emiliano@example.invalid> wrote:
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:
Answering myself:
% oo::class create C {
initialize {
variable CVar
const CVar "My class variable"
}
method foo {} { # reads the constant
classvariable CVar
puts $CVar
}
method bar {} { # tries to set the constant
classvariable CVar
set CVar "other value"
}
}
::C
% C create o
::o
% o foo
My class variable
% o bar
can't set "CVar": variable is a constant
Regards
-- Emiliano