Blake a écrit :
On Tue, 19 Feb 2008 15:59:57 -0800, nicolas cellier
<ncellier@xxxxxxxxxxx> wrote:
However, there are plenty of ordinary things that would have the same
result:
| key1 key2 dic |
key1 := 'abc' copy.
key2 := 'abd' copy.
dic := Dictionary new.
dic at: key1 put: 1.
dic at: key2 put: 2.
key1 at: 1 put: $z.
{dic includesKey: key1.
dic keys includes: key1.}
So i propose newbies do not use #at:put: considering the danger about
Dictionary not finding their keys...
This seems pretty bad to me, too, but it seems more designed to break a
known weakness than to actually accomplish something. You know, like
empty a collection.<s>
Yes, the example is dumb, but that's the kind of thing that happens in
real code (just split contructing/changing keys/accessing in three
different methods).
No use to forbid become: for this reason, there are better reasons (it's
sloooow), become: usage was sponsored once upon a time when it was fast,
providing both efficient and generic solutions.
But I'd probably argue that the above should work, and that it's a
design flaw that it doesn't.
Yes, but it is very hard to make it work efficiently.
So that's a limitation we must be aware of.
Anyway, why do you think all code is accessible in Smalltalk?
In the spirit, nothing is to be hidden from newbies eyes.
Yes I know, maybe some code should
There's a positive fetish about this. I'm all for everything being
accessible. But everything being equally accessible all the time is not
pragmatic.
|