Ver Mensaje Individual
  #6 (permalink)  
Antiguo 15/12/2005, 06:07
Zerjillo
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 20 años
Puntos: 1
A ver... respecto al último post, en realidad estás haciendo "trampa". Estas devolviendo punteros (que no son objetos en si) y devuelves un 0, que en realidad es un puntero como otro cualquiera. Dado que C es un chapuzas con los castings y tipos, 0 es considerado también como un valor "false" cuando se hacen comparaciones...

Pero en realidad no estás devolviendo objetos distintos.

Respecto a la pregunta original... es que eso de "independientemente del lenguaje" es el punto fuerte de tu pregunta... hay lenguajes que permiten que devuelvas lo que te de la gana, y luego tu apañatelas como puedas cuando leas el resultado de la llamada. Por ejemplo, en php puedes devolver lo que quieras y luego tienes que hilar fino a ver que comparación usas si quieres saber que se ha devuelto realmente. Y eso es fuente de muchos errores y chapuzas, para que engañarnos.

El caso de javascript es que es un lenguaje especialmente chapucero. Precisamente este tipo de cosas son las que hacen que mantener un pequeño codigo en javascript sea una pesadilla.


Hay muchos lenguajes que directamente no te permiten hacer eso (como por ejemplo java). Sin embargo, para suplir la posible potencialidad de este tipo de comportamientos se suelen ofrecer herramientas(como la herencia) para poder devolver tipos distintos (aunque emparentados).

Un saludo

Zerjillo