Classe :: Multimethods.

Supporto multimetodi e sovraccarico di funzionamento in Perl
Scarica ora

Classe :: Multimethods. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Damian Conway
  • Sito web dell'editore:
  • http://search.cpan.org/~dconway/

Classe :: Multimethods. Tag


Classe :: Multimethods. Descrizione

multimethods di supporto e la funzione sovraccarico in Perl Class :: multimethods è un modulo Perl che offre multimethods e la funzione di sovraccaricare in Perl.SYNOPSIS # importare il multimethod DICHIARAZIONE SUB ... uso Class :: multimethods; # DECLARE multimethods VARI find CHIAMATI ... # 1. fare questo se trovo è chiamato con un contenitore REF e un'interrogazione REF ... multimethod trovano => (Container, Query) => sub {$ _ -> findquery ($ _ )}; # 2. farlo se trovare è chiamato con un contenitore REF E UN REF campione ... multimethod trovare => (Container, Campione) => sub {$ _ -> findlike ($ _ )}; # 3. farlo se ritrovamento viene chiamato con un indice REF e una parola REF ... multimethod trovare => (indice, Word) => sub {$ _ -> lookup_word ($ _ )}; # 4. farlo se ritrovamento viene chiamato con un indice REF E UN qr // MODELLO multimethod trovare => (indice, Regexp) => sub {$ _ -> lookup_rx ($ _ )}; # 5. farlo se ritrovamento viene chiamato con un indice REF E UN NUMERICO SCALARE multimethod trovare => (indice, '#') => sub {$ _ -> lookup_elem ($ _ )}; # 6. farlo se ritrovamento viene chiamato con un indice REF e di un non-NUMERICO SCALARE multimethod trovare => (indice, '$') => sub {$ _ -> lookup_str ($ _ )} ; # 7. farlo se ritrovamento viene chiamato con un indice REF E UN unblessed ARRAY REF # (notare il RECURSIVE chiamata al trovare MULTIMETHOD) multimethod trovare => (indice, ARRAY) => sub {{mappa trovare ($ _ , $ _)} @ {$ _ }}; # SET UP alcuni oggetti ... la mia $ cntr = new Container ( './datafile'); my $ indx = $ cntr-> get_index (); # ... e alcune EREDITÀ ... @BadWord :: ISA = qw (Word); my $ BADWORD = new BadWord ( "fubar"); # ... ED ESERCIZIO LORO ... Stampa Trova ($ cntr, nuova query ( 'CPAN o Perl')); # CHIAMATE 1. find stampa ($ cntr, nuovo esempio ( 'da un comitato')); # CHIAMATE 2. find stampa ($ INDX, nuova parola ( 'zucchero')); # CHIAMATE 3. find stampa ($ INDX, $ BADWORD); # CHIAMATE 3. find stampa ($ INDX, QR / un altro mattone nel muro /); # CHIAMATE 4. find stampa ($ INDX, 7); # CHIAMATE 5. find stampa ($ INDX, 'Ma non farlo.'); # CHIAMATE 6. find stampa ($ INDX, ); # CHIAMATE 7, # ALLORA 5 e 6. La Classe: modulo Multimethod esporta una subroutine (multimethod) che può essere utilizzato per dichiarare altre subroutine che vengono inviati utilizzando un diverso algoritmo dal normale Perl subroutine o metodo di spedizione subroutine mechanism.Normal Perl sono inviato trovando la subroutine appropriato nome nel pacchetto corrente (o specificata) e chiamando quello. metodi Normale Perl vengono spediti tentando di trovare la subroutine appropriato nome nel pacchetto in cui l'oggetto invocazione è benedetto o, in mancanza, in modo ricorsivo ricerca di essa nei pacchetti elencati nella appropriata @ISA arrays.Class :: multimethods multimethods sono spedito in modo diverso. L'aspetto meccanismo spedizione nel classi o tipi di ogni argomento alla multimethod (chiamando ref su ciascuna) e determina la "vicini" variante corrispondenza della multimethod, secondo i tipi di argomenti specificati nelle definizioni delle varianti (vedere "Individuazione multimethod "più vicino"" per una definizione di 'più vicino'). Il risultato è qualcosa di simile al C ++ 's overloading di funzioni, ma più intelligente, poiché multimethods prendono le relazioni di ereditarietà di ogni argomento in considerazione. Un altro modo di pensare del meccanismo è che si esegue la spedizione polimorfa su tutti gli argomenti di un metodo, non solo la prima. Requisiti: · Perl.


Classe :: Multimethods. Software correlato

VCI.

un'interfaccia generica per interagire con vari sistemi di controllo della versione ...

193

Scarica