Hola kiko !! Supongo que quedo claro con la explicación de Claudio pero por si queres un thread interesante sobre Species, Tipos y Polimorfismo podés leer, http://ar.groups.yahoo.com/group/smalltalking/message/912
Saludos, Facundo Claudio escribió: > Hola Kiko, > species no te retorna la clase del receptor, sino la especie > del mismo... En general esta se usa cuando se quiere construír un > objeto "de la especie" de otro. Por ejemplo, cuando a una collection le > enviás el mensaje: > #select: aBlock > te devuelve una nueva collection con aquellos elementos que cumplen la > condición de aBlock. Qué tipo de collection será la collection > resultante? fijate que no siempre es posible (o conveniente) que la > collection resultante sea de la misma clase que aquella que recibió el > #select: Por ejemplo, si hacemos lo siguiente: > (1 to: 20) select: [ :i | i isPrimo] > el receptor del #select: es (1 to:20), o sea una instancia de la clase > Interval (Un tipo de Collection). con este #select: estamos > seleccionando todos aquellos elementos del Interval que son primos > (asumo que tenemos un método en la clase Integer que testea si el > receptor es primo o no). Claramente el resultado no puede ser un > interval ya que la separación entre los primos no es constante, > entonces no podría devolver otro Interval... > en la clase Interval está implementado #species de forma tal que > devuelve la clase Array. de hecho el resultado de hacer > (1 to: 20) select: [ :i | i isPrimo] > es: > (2 3 5 7 11 13 17 19) > Consejo: Fijate quienes implementan #species y cómo, y fijate quienes > son senders de #species (Por ejemplo #select:) y vas a terminar de > entenderlo. > Saludos, > Claudio > > > > > Jose Gregoris wrote: > >> Hola >> >> >> Quería saber cual es el proposito de el mensaje #species , ya que por su >> implementacion solo retorna la clase a la cual pertenese el objeto. >> No es lo mismo que enviar el mensaje #class o hay una diferencia semantica. >> >> Algo curioso es que en la mayoria de los ST el mensaje se implementa en >> Object, pero en MT solo se implementa en 5 lugares y no en Object. >> >> saludos kiko >> >> __________________________________________________ >> Correo Yahoo! >> Espacio para todos tus mensajes, antivirus y antispam ¡gratis! >> ¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar >> --0-415474751-1146672288=:67746 >> Content-Type: text/html; charset=iso-8859-1 >> Content-Transfer-Encoding: quoted-printable >> X-Google-AttachSize: 699 >> >> <div>Hola </div> <div> </div> <div> </div> <div>Quería saber >> cual es el proposito de el mensaje #species , ya que por su implementacion >> solo retorna la clase a la cual pertenese el objeto.</div> <div>No es lo >> mismo que enviar el mensaje #class o hay una diferencia semantica.</div> >> <div> </div> <div>Algo curioso es que en la mayoria de los ST el >> mensaje se implementa en Object, pero en MT solo se implementa en 5 lugares >> y no en Object.</div> <div> </div> <div>saludos >> kiko</div><p>__________________________________________________<br>Correo >> Yahoo!<br>Espacio para todos tus mensajes, antivirus y antispam ¡gratis! >> <br>¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar >> --0-415474751-1146672288=:67746-- >> > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ Ha recibido este mensaje porque está suscrito a Grupos de Google "clubSmalltalk" grupo. Si quiere publicar en este grupo, mande un correo electrónico a [email protected] Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED] Para visualizar más opciones, visite este grupo enhttp://groups.google.com/group/clubSmalltalk -~----------~----~----~----~------~----~------~--~---
