|
Du bist hier:
Hinterkattentuffel -
Ruby -
Funktionen definieren Prev: Entwicklungsumgebung |
|
Im einführenden Beispiel hatten wir eine Anweisung zur Erzeugung von Playlisten ausprobiert: Dir["*.mp3"].each { |mp3Datei| printf("%s\n", mp3Datei) } Soll die Anweisung innerhalb eies größeren Programms mehrfach aufgerufen werden? Dann sollte das Codekonstrukt einen Namen bekommen:
def printPlaylist
Dir["*.mp3"].each { |mp3Datei| printf("%s\n", mp3Datei) }
end
Eine so definierte Funktion kann über den Funktionsnamen, hier printPlaylist, beliebig oft aufgerufen werden. Ein doppelter Aufruf würde mehr Sinn machen, wenn die verwendete Dateiendung variabel wäre. Das geht über Funktionsparameter:
def printPlaylist(fileExtension)
Dir["*." + fileExtension].each { |musicFile| printf("%s\n", musicFile) }
end
Jetzt ist folgendes möglich:
printPlaylist('mp3')
printPlaylist('wav')
Funktionen liefern das Ergebnis der letzten Anweisung als Rückgabewert. Man kann das expliziter machen, indem man return-Anweisungen in die Methode einbettet:
def printPlaylist(fileExtension)
files = Dir["*." + fileExtension]
files.each { |musicFile| printf("%s\n", musicFile) }
return files.size
end
Jetzt kann der Aufrufer der Funktion zusätzlich die Anzahl der gefundenen Dateien beziffern:
numberOfFiles = printPlaylist('mp3') + printPlaylist('wav')
Später werden wir sehen, dass es noch viel mehr Möglichkeiten gibt, Code zu strukturieren. Eine davon sind Klassen. |
| Next: Klassen definieren |