[Linuxtrent] Re: [OT] C: this

  • From: lele@xxxxxxxxxx (Lele Gaifax)
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Tue, 21 May 2002 21:00:57 +0200

>>>>> 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


Other related posts: