Next Previous Contents

26. <4.1>: Metoder

Ruby har verken prosedyrer eller funksjoner; kun metoder som kalles på objekter.

  1| # Husker du denne?
  2| def si_hei
  3|   puts "Hei verden!"
  4| end
  5| 
  6| # Hva er vel en funksjon uten argumenter?
  7| def si_hei_til( hva )
  8|   puts "Hei #{hva}"
  9| end
 10| 
 11| si_hei_til("Trondheim!") #=> "Hei Trondheim!"
 12| 
 13| # Funksjoner kan ta flere argumenter og de kan ha default verdier
 14| def send_julegave( til, fra="nissen" )
 15|   puts "God jul, #{til}. Hilsen #{fra}."
 16| end
 17| 
 18| send_julegave("Junior" )    #=> "God jul, Junior. Hilsen nissen."
 19| send_julegave("Ola", "far") #=> "God jul, Ola. Hilsen far."

Du syntes kanskje det så lite objekt-orientert ut? Ikke var metodene definert i noen klasse, og ikke kalte vi dem på noe objekt heller. Det tror du. Alle metoder som defineres på toppnivå defineres i Object-klassen, og vi har implisitt en toppnivå Object-instans. (Prøv self.type og se selv.)


Next Previous Contents