Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

Metodi esplici, impliciti e definiti dall'utente in Ruby

Nel corso di questa guida abbiamo sottolineato più volte come Ruby sia un linguaggio orientato agli oggetti; un oggetto ha un nome univo che lo identifica all'interno di un'applicazione, ad esso sono associati dei metodi e questi metodi possono essere di tipo differente.

Vi sono alcuni metodi, come per esempio "puts" e "gets" di cui abbiamo parlato in precedenza, per i quali non sempre facile identificare gli oggetti a cui fanno riferimento.
Il metodo "main", anche di questo abbiamo già parlato, è considerato un "metodo implicito" in quanto per decisione dello stesso esecutore fa riferimento a qualsiasi oggetto presente nell'applicazione.

A questo punto è necessario poter utilizzare uno strumento che ci consenta di identificare l'oggetto corrente, cioè quello a cui è associato il metodo che desideriamo utilizzare.
Fortunatamente Ruby ci mette a disposizione questo strumento sotto forma di una variabile speciale denominata self; essa potrà essere richiamata attraverso una semplice istruzione:

puts self
Nel momento in cui un programma viene eseguito è possibile identificare un solo oggetto accessibile al programma in esecuzione (perchè solo uno "esiste" per l'esecutore); naturalmente, se non è stato richiamato o definito alcun altro metodo, l'esecuzione di "self" restituirà semplicemente "main", il metodo di default.

I metodi nativi in Ruby sono veramente tanti, eppure è possibile anche introdurne di nuovi sulla base delle esigenze dell'utente; vediamo questo semplice esempio:

# definizione di un metodo
 # metodo e parametri
def saluto(nome)
  # istruzioni
  puts 'Buongiorno ' + nome + '!'
  # valore di ritorno
  return 'Come va?'
# chiusura del blocco di definizione
end
 
# chiamata al metodo
puts(saluto('Max'))

=begin 
La chimata al metodo stampa:
Buongiorno Max!
Come va?
=end
def è l'istruzione che ci permette di definire un metodo; ad essa segue il nome del metodo e tra parentesi i parametri che dovranno essere utilizzati dal metodo; prima della chiusura del blocco sarà possibile indicare le istuzioni che il metodo dovrà compiere e un eventuale valore di ritorno introdotto dal costrutto return.
A questo punto, per richiamare il metodo creato sarà sufficiente passargli un valore per il parametro indicato.
Chi conosce PHP avrà sicuramente notato come il meccanismo sia molto simile a quello utilizzato nella definizione delle funzioni.

Nella creazione di un metodo l'utente ha la possibilità di definire anche dei valori di default da associare ai parametri argomento del metodo; vediamo un semplice esempio:

=begin 
definizione di un metodo
con valori di default
=end
 
# metodo e parametri
def a(par1='Cane', par2='Gatto', par3='Topo')
  #istruzioni   
  "#{par1}, #{par2} e #{par3}."
# chiusura del blocco di definizione
end

# chiamata al metodo
puts a

# stampa: Cane, Gatto e Topo
Da notare l'uso del costrutto "#{parametro}" (operatore di interpolazione) utilizzato per il passaggio delle variabili; quando i parametri sono espressi in questo modo essi devono essere racchiusi tra doppi apici, i singoli apici infatti non "esplodono" le variabili, cioè non ne permettono la stampa del relativo valore (anche qui una similitudine con PHP).

Vediamo ora un secondo esempio:

=begin 
definizione di un metodo
senza valori di default
=end
 
# metodo e parametri
def b(* parametri)
  # istruzioni   
  parametri.each do | vals|
    puts vals
  # chiusura del blocco di istruzioni
  end
# chiusura del blocco di definizione
end
 
# passaggio di valori al metodo
b('Cane', 'Gatto', 'Topo')
 
# chiamata al metodo
b()
 
=begin 
la chiamata al metodo stampa:
Cane
Gatto
Topo
=end
In questo secondo caso, i parametri da passare al metodo non sono stati definti a priori i parametri di default da passare al metodo, è stato possibile invece introdurli successivamente (al di fuori del blocco di definizione) grazie all'utilizzo del simbolo "*" che prende il significato di "qualsiasi parametro".

Corsi
Corso Ruby e Ruby On RailsCorso Ruby e Ruby On Rails
Creare software ed applicazioni Web con Ruby e ROR. A partire da 49 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122