Am 26.08.2013 um 10:56 schrieb Esteban Lorenzano <estebanlm@gmail.com>:
On Aug 25, 2013, at 9:40 AM, Camille Teruel <camille.teruel@gmail.com> wrote:
On 24 août 2013, at 19:20, Camillo Bruni wrote:
We have now:
String >> #asClass String >> #asClassIfAbsent: String >> #asClassIfPresent:
I don't understand why we need this new way. Is it just to avoid calling 'Smalltalk globals at: #MyClass'?
exactly
Because these names are confusing, and the 'as' prefix suggests a conversion while it's an access (with indirection but still a mere access). And #asClass has no sender. If you think 'Smalltalk globals at: #MyClass' is really too long to type, lets just create a new global ThisEnvironment := Smalltalk globals.
this was already discussed. With #asClass and relatives what you have is a better abstraction jut because you are decoupled of "Smalltalk globals", it is not a big win now, but it open doors to better designs with environments, etc. At least, that was my understanding when the issue arise at the beginning.
I just find it strange that an as* selector might _not_ return anything needing a #asClassIfAbsent: selector. While I'm understanding the intention it does not fit in my had. To me it worsens the understanding of as* conversion selectors. Norbert
On 2013-08-24, at 17:55, Fernando Olivero <fernando.olivero@usi.ch> wrote:
I prefer to evaluate
Smalltalk globals classNamed: #MyClass
Fernando
On Sat, Aug 24, 2013 at 11:57 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
Is it
asClass?
Stef