Programmazione.it v6.2
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Chat Forum
Corso su Ruby: method_missing
Scritto da Satish Talim il 04-05-2007 ore 11:40
Intel Software
Quando si invia un messaggio ad un oggetto, l'oggetto esegue il primo metodo che trova sul suo percorso di ricerca dei metodi con lo stesso nome del messaggio ricevuto. Se fallisce nel trovare tale metodo, esso genera un'eccezione NoMethodError, a meno che non si sia fornito all'oggetto un metodo chiamato method_missing. Quest’ultimo scavalca il simbolo del metodo non esistente e tutti gli argomenti che sono stati passati con esso.

Method_missing è in parte una rete di sicurezza giacché offre il modo di intercettare i messaggi a cui non si può rispondere e gestirli in modo appropriato, come nell’esempio che segue, dopo aver salvato il file come tmp.rb:
  1. <span style="font-size:1.0em">class Dummy  
  2.   def method_missing(m, *args)  
  3.     puts "Non esiste nessun metodo chiamato #{m} – ritenta ancora."  
  4.   end  
  5. end  
  6. Dummy.new.anything</span>

L'output è:
  1. <span style="font-size:1.0em">>ruby tmp.rb  
  2. Non esiste nessun metodo chiamato anything – ritenta ancora. 
  3. >Exit code: 0</span>

"Traduzione e adattamento a cura di Francesca Beatrice Cice. La versione originale del tutorial di Satish Talim può essere trovata su rubylearning.com"
Precedente: UML Pratico con elementi di ingegneria del software (seconda edizione)
Successiva: Come pulire e ricalibrare un lettore CD/DVD recalcitrante o vecchiotto (2/2)
Copyright Programmazione.it™ 1999-2009. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.707 secondi. Sito ottimizzato per Mozilla Firefox. Powered by Kyron.