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 
> 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 <[email protected] <javascript:>> 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! 
> >> -- 
> > 
> > --- 
> > El software de antivirus Avast ha analizado este correo electrónico en 
> busca 
> > de virus. 
> > https://www.avast.com/antivirus 
> > 
> > -- 
>
> -- 
> Saludos cordiales, 
>
> Guillermo Schwarz 
>

-- 
-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

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 [email protected].
Para obtener más opciones, visita https://groups.google.com/d/optout.

Responder a