[Newbies] anObject select: #aMethodName -- is this good Squeak?
Giovanni Corriga
giovanni at corriga.net
Wed Feb 7 23:22:11 UTC 2007
Il giorno mer, 07/02/2007 alle 13.42 -0500, Ron Teitelbaum ha scritto:
> Hi Michael,
>
> It's a trick. It only works because #value: is implemented on symbol as:
>
> Symbol>>value: anObject
> ^anObject perform: self.
>
> So the following works too.
>
> #asUppercase value: 'I am a trick'
>
> My suggestion is that you shouldn't follow such tricks. Although I do it
> too sometimes with things like.
>
> aDictionary at: #foo ifAbsent: nil.
>
> Since nil responds self to #value it seems redundant to me to put the nil in
> a block so that it can return nil when the block is evaluated with #value.
> Even though in this case the execution is faster but in the case of sending
> a symbol to select it is slower.
>
> In both cases it is harder to read so in my opinion it is best to stick with
> arguments that are expected.
Not to mention the fact that if you use a Symbol instead of a block,
that use won't be listed in the Senders browser.
Giovanni
More information about the Beginners
mailing list