Der Kernunterschied zwischen Verfahren und Funktionen liegt in ihren Rückgabewerten:
* Verfahren: Ein Verfahren (manchmal auch als Unterprogramm bezeichnet) ist ein Codeblock, der eine bestimmte Aufgabe ausführt, *jedoch keinen Wert zurückgibt *. Es handelt sich im Wesentlichen um eine Reihe von Anweisungen, die für seine Nebenwirkungen ausgeführt wurden (z. B. Daten ändern, Ausgangsausgabe, Interaktion mit Hardware).
* Funktion: Eine Funktion ist auch ein Codeblock, der eine bestimmte Aufgabe ausführt, aber immer einen Wert zurückgibt *. Dieser Rückgabewert kann von jedem Datentyp (ganzzahliger, String, boolean, Objekt usw.) oder sogar von Leerregeln sein (was bedeutet, dass er nichts explizites zurückgibt, aber in vielen Sprachen immer noch eine implizite Rendite erzielt). Der Hauptzweck einer Funktion besteht darin, ein Ergebnis zu berechnen und zurückzugeben.
Hier ist eine Analogie:
Stellen Sie sich einen Koch vor.
* Verfahren: Der Küchenchef folgt einem Rezept für die Zubereitung eines Gerichts. Die Aktion der Zubereitung des Gerichts ist das Verfahren. Der Küchenchef gibt Ihnen außer den veränderten Zutaten nichts zurück. Das Endergebnis ist eine Änderung des Zustands der Zutaten.
* Funktion: Der Koch macht eine Sauce. Die Wirkung der Sauce ist die Funktion, und die Sauce selbst ist der zurückgegebene Wert.
im Code (Python -Beispiel):
`` `Python
Prozedur (gibt keinen Wert zurück)
Def Greet (Name):
print (f "Hallo, {Name}!")
Greet ("Alice") # Ausgabe:Hallo, Alice!
Funktion (zurückgegeben)
Def add (x, y):
Rückgabe x + y
sum =add (5, 3) # sum ist 8 sein
Druck (Summe) # Ausgabe:8
`` `
Schlüsselunterschiede zusammengefasst:
| Feature | Vorgehensweise | Funktion |
| --------------- | --------------------------------------- | ---------------------------------------- |
| Rückgabewert | Gibt keinen Wert zurück | Gibt immer einen Wert zurück (kann ungültig sein/keine) |
| Zweck | Führt eine Aufgabe aus, oft für Nebenwirkungen | Berechnet und gibt ein Ergebnis zurück |
Während die Unterscheidung theoretisch klar ist, verwischen einige Programmiersprachen die Zeilen. Beispielsweise unterscheiden einige Sprachen möglicherweise nicht explizit zwischen Verfahren und Funktionen, wobei der Begriff "Funktion" verwendet wird, um beide zu umfassen. Der konzeptionelle Unterschied bleibt jedoch wichtig, um Programmdesign und Modularität zu verstehen.