Hola a todos!
-- Cuando me encontré por primera vez con smalltalk, me resultó buenísima la idea de que las clases se definan enviando un mensaje a la superclase, y me surgió la duda (todavía sin resolver) sobre qué pasa cuando acepto el código de un método en el browser. ¿Se termina enviando algún mensaje "parecido" al que sirve para definir una clase? Me imaginaba algo así como:
Saludos! -- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org --- Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email]. Para acceder a más opciones, visita https://groups.google.com/d/optout. |
Hola,
Los metodos son: Behavior>>compile: Class>>compile:categories: .... Busca por que hay mas metodos para compilar codigo en la jerarquia de clases de Behavior. MyClass compile: 'testMethod ^nil'. saludos, bruno El 31/01/2016 a las 22:59, Facundo
Javier Gelatti escibió:
-- -- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org --- Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email]. Para acceder a más opciones, visita https://groups.google.com/d/optout. |
ok, pero esa es la implementación interna. Podría ser otra. En la
práctica es el compilador el que se encarga de crear los métodos (lo que es lógico si piensas que los métodos están siempre compilados a bytecode)... cuando editas un método en realidad lo que ocurre es que el objeto "method" tiene un puntero a donde se encuentra el fuente del método dentro de un archivo de log. Al hacer "save", en realidad lo que hace el compilador es crear un nuevo método, descarta el antiguo (nadie apunta a él => garbage collection), el nuevo fuente se guarda en el log, y el nuevo método apunta en el log al punto donde está guardado el fuente. Es ingenioso y al mismo tiempo muy eficiente, pero sigue siendo la implementación. Eso confunde a los newbies, IMHO. Si eres newbie... en la práctica lo que tienes que hacer para definir un nuevo método en una clase es ir al systemBrowser o al class browser y hacer click derecho sobre la clase y "new method". Un hack es tomar un método que ya existe, editarlo cambiándole el nombre, y el entorno se encarga de crear un nuevo método. No es muy intuitivo para los primerizos, pero funciona. On 2/1/16, Smalltalk <[hidden email]> wrote: > Hola, > > Los metodos son: > Behavior>>compile: > Class>>compile:categories: > .... > > Busca por que hay mas metodos para compilar codigo en la jerarquia de > clases de Behavior. > > MyClass compile: 'testMethod > ^nil'. > > saludos, > bruno > > El 31/01/2016 a las 22:59, Facundo Javier Gelatti escibió: >> Hola a todos! >> >> Cuando me encontré por primera vez con smalltalk, me resultó buenísima >> la idea de que las clases se definan enviando un mensaje a la >> superclase, y me surgió la duda (todavía sin resolver) sobre qué pasa >> cuando acepto el código de un método en el browser. ¿Se termina >> enviando algún mensaje "parecido" al que sirve para definir una clase? >> Me imaginaba algo así como: >> >> | >> ClassNamedefineMethod:#message:selector: as: [ :arg1 :arg2 | >> ... >> ] >> | >> >> Saludos! >> -- >> -- >> To post to this group, send email to [hidden email] >> To unsubscribe from this group, send email to >> [hidden email] >> >> http://www.clubSmalltalk.org >> --- >> Has recibido este mensaje porque estás suscrito al grupo >> "ClubSmalltalk" de Grupos de Google. >> Para anular la suscripción a este grupo y dejar de recibir sus >> mensajes, envía un correo electrónico a >> [hidden email] >> <mailto:[hidden email]>. >> Para acceder a más opciones, visita https://groups.google.com/d/optout. > > > > --- > El software de antivirus Avast ha analizado este correo electrónico en busca > de virus. > https://www.avast.com/antivirus > > -- > -- > To post to this group, send email to [hidden email] > To unsubscribe from this group, send email to > [hidden email] > > http://www.clubSmalltalk.org > --- > Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de > Grupos de Google. > Para anular la suscripción a este grupo y dejar de recibir sus mensajes, > envía un correo electrónico a [hidden email]. > Para obtener más opciones, visita https://groups.google.com/d/optout. > -- Saludos cordiales, Guillermo Schwarz -- -- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org --- Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email]. Para obtener más opciones, visita https://groups.google.com/d/optout. |
Muchas gracias Bruno y Guillermo! Tengo mucho que aprender 😅
-- El lunes, 1 de febrero de 2016, 13:06:22 (UTC-3), Guillermo Schwarz escribió: ok, pero esa es la implementación interna. Podría ser otra. En la -- To post to this group, send email to [hidden email] To unsubscribe from this group, send email to [hidden email] http://www.clubSmalltalk.org --- Has recibido este mensaje porque estás suscrito al grupo "ClubSmalltalk" de Grupos de Google. Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email]. Para acceder a más opciones, visita https://groups.google.com/d/optout. |
Free forum by Nabble | Edit this page |