>>>>> On Tue, 21 May 2002 21:23:08 +0200, Mauro Colorio <linuxbox@xxxxxxxxxxxx> >>>>> said: >> e il fondamentale per spedire i messaggi: >> >> [mioOggetto printAsHtmlOn:myPrinter] MC> mi ricorda vagamente lo smalltalk Infatti, ObjC deriva moltissimo da Smalltalk. E' terribilmente pratico utilizzare le keyword (in gergo ObjC) per identificare i parametri passati. JFYI, il Python ha saputo copiare molto bene anche questo :-) Molto più elegantemente di quanto puoi fare con il C e con il C++, i nomi dei messaggi (metodi) suggeriscono sia l'ordine che il tipo degli argomenti. Ad esempio, volessi specializzare il metodo suddetto passandogli un'ulteriore parametro, potrebbe essere - (void) printAsHtmlOn:(NSPrinter *) thePrinter { // Ridefinisci il metodo, stampando di default la copertina [self printAsHtmlOn:thePrinter withCover:YES]; } - (void) printAsHtmlOn:(NSPrinter *) thePrinter withCover:(bool) cover { // se devi stampare la copertina... if (cover) { [self printCoverOn:thePrinter]; } // poi invoca il metodo della superclasse. [super printAsHtmlOn:thePrinter]; } e quindi poter chiamare [mioOggetto printAsHtmlOn:myPrinter withCover:NO] mooolto più mnemonico dell'equivalente in C++ mioOggetto->printAsHtmlOn(myPrinter,FALSE) e mooolto più simpatico di mioOggetto->printAsHtmlOnWithCover(myPrinter,FALSE) :-) ciao, lele. PS: anche nella scelta della convenzione di utilizzare il mix maiuscolo/minuscolo è particolare e a mio avviso alla lunga meno pesante da leggere dell'underscore, come in "print_as_html_on"... C'è un minor mode molto comodo per Emacs che consente di "navigare" tra le varie "sillabe" come fossero parole distinte... PPS: con un po' di rossore in volto, ho contribuito io, eoni fa, le modifiche a cc-mode (ora di serie in Emacs) per il supporto di ObjC, che consentono di indentare il codice come qui sopra :-) -- nickname: Lele Gaifax | Quando vivro' di quello che ho pensato ieri real: Emanuele Gaifas | comincero' ad aver paura di chi mi copia. email: lele@xxxxxxxxxx | -- Fortunato Depero, 1929. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx