Functionen
Was ist eine Funktion?
Eine Funktion ist eine Methode, die nicht in Verbindung steht mit irgendeinem betimmten Objekt. Sie haben bereits eine Funktion gesehen: "puts".
Beachten Sie die Syntax:
puts "Hallo" # satt: object.puts "Hallo"
|
Hallo Welt mit einer Funktion
Hier eine einfache Funktion:
def sag_hallo
puts "Hallo, wie geht's?"
end
|
Nun haben wir die Funkktion sag_hallo definiert.
Wenn Sie die Funktion "sag_hallo" aufrufen, wird der Code in dem Block
ausgeführt.
Zum Beispiel:
def sag_hallo
puts "Hallo, wie geht's?"
end
sag_hallo
sag_hallo
|
Gibt aus:
"Hallo, wie geht's?"
"Hallo, wie geht's?"
|
Wie Sie sehen können, sind Funktionn der erste Schritt dahin, Code
wiederzuverwenden.
Funktionsargumente
Funktionen und Methoden kann man Argumente übergeben.
Hier eine verbesserte sag_hallo-Funktion.
# 'name' enthaelt die Benutzereingabe
def sag_hallo(name)
puts "Hallo " + name + ", wie geht's?"
end
say_hi("Daniel")
say_hi "Sandy"
|
Die Ausgabe ist:
Hallo Daniel, wie geht's?
Hallo Sandy, wie geht's?
|
Eine Adresse ausgeben
Schreiben wir nun eine sinnvollere Funktion. Recall the address
structures:
# Josef's Adresse
josef_adr= {
"strasse" => "23 St George St.",
"stadt" => "Silver Spring",
"land" => "MD",
"plz" => "20465"
}
# Herbert's Adresse
herbert_adr = {
"strasse" => "324 Campus Dr.",
"stadt" => "College Park",
"land" => "MD",
"plz" => "23659"
}
|
Erstellen wir eine Funktion, um diese auszugeben:
def print_adr(adresse)
land = addresse["land"]
plz = addresse["plz"]
puts " " + adresse["strasse"]
puts " " + adresse["stadt"]
puts " " + land ", " + plz
end
|
Nun können wir einfach Adressen ausgeben:
puts "Josef:"
print_adr(melissa_adr)
puts "Herbert:"
print_adr(sandy_adr)
|
Und das gibt aus:
Melissa:
23 St George St.
Silver Spring
MD, 20465
Sandy:
324 Campus Dr.
College Park
MD, 23659
|