On Oct 20, 09 03:40, Piotrek wrote:
Bill Baxter pisze:
Just get rid of the the one-argument foreach over AAs altogether and
force
the user to be
explicit about it.
I wouldn't do so. Would anybody do an error by thinking that foreach
(elem,table) should iterate over keys?
Bearophile. And anyone coming from python, at the least. And anyone
who agrees with the logic of connecting 'in' with what gets iterated.
And only python that I am aware of. Java,C#,PHP (which hold most of all
programmers) are defaulting to values unless explicitly stated.
and Javascript. and Objective-C.
Maybe I'm not thinking correctly but for me an assoc array is just an
array
with additional key (index) features thanks to which I save space and/or
have more indexing method than only integers.
It can also be thought of as a set with some ancillary data associated
with each element. In that case the keys are the set elements, and
the values are just some extra stuff hanging off the elements.
--bb
Sorry in advance, I couldn't resist.
From Wikipedia:
"From the perspective of a computer programmer, an associative array can
be viewed as a generalization of an array. While a regular array maps an
index to an arbitrary data type such as integers, other primitive types,
or even objects, an associative array's keys can be arbitrarily typed.
The values of an associative array do not need to be the same type,
although this is dependent on the programming language"
So it almost the same what I have said. I hadn't seen wiki entry before
nor didn't changed the article's test ;) So now you can see that for
most people (except Python guys and maybe a some more) it should behave
like normal array. It's just intuitive.
What you are talking about it's a side effect of AAs (or rather
derivative feature) and then we use the keys property or the key,value
pair.
Cheers
Piotrek