Rainer Deyke wrote:
Leandro Lucarella wrote:
!? It's true that in Python all are references, but there are inmutable
objects in Python, like int, float, strings and tuples. From a practical
POV it exactly the same as value types, if you do:

Immutable reference types are still reference types, and follow the same
rules as other reference types.  You just can't modify them.  The
assignment operator *always* rebinds a reference, regardless of the
mutability or immutability of any objects involved.

From a user's point of view, an immutable reference is indistinguishable from a value.


But that's still not half as bad as D, where something simple like 'a =
b; a.x = 5;' can have two completely different meanings depending on
whether 'a' is a reference type or a value type.

True.

And in C++ with assignment overloads and copy constructors, one also has no clue what a.x=5 does without looking at the source to those functions.

I don't think there's anyway we can pretend to know what semantics a type has in a language with user-definable types without at least looking at its declaration.

Reply via email to