Go - Funktionen
Eine Funktion ist eine Gruppe von Anweisungen, die zusammen eine Aufgabe ausführen. Jedes Go-Programm hat mindestens eine Funktion:main(). Sie können Ihren Code in separate Funktionen unterteilen. Wie Sie Ihren Code auf verschiedene Funktionen aufteilen, liegt bei Ihnen. Logischerweise sollte die Aufteilung jedoch so erfolgen, dass jede Funktion eine bestimmte Aufgabe ausführt.
Eine Funktion declarationinformiert den Compiler über einen Funktionsnamen, einen Rückgabetyp und Parameter. Eine Funktiondefinition liefert den eigentlichen Körper der Funktion.
Die Go-Standardbibliothek bietet zahlreiche integrierte Funktionen, die Ihr Programm aufrufen kann. Zum Beispiel die Funktionlen()Nimmt Argumente verschiedener Typen und gibt die Länge des Typs zurück. Wenn eine Zeichenfolge an diese übergeben wird, gibt die Funktion die Länge der Zeichenfolge in Byte zurück. Wenn ein Array an dieses übergeben wird, gibt die Funktion die Länge des Arrays zurück.
Funktionen sind auch bekannt als method, sub-routine, oder procedure.
Funktion definieren
Die allgemeine Form einer Funktionsdefinition in der Programmiersprache Go lautet wie folgt:
func function_name( [parameter list] ) [return_types]
{
body of the function
}
Eine Funktionsdefinition in der Programmiersprache Go besteht aus einem Funktionsheader und einem Funktionskörper . Hier sind alle Teile einer Funktion -
Func - Es startet die Deklaration einer Funktion.
Function Name- Es ist der tatsächliche Name der Funktion. Der Funktionsname und die Parameterliste bilden zusammen die Funktionssignatur.
Parameters- Ein Parameter ist wie ein Platzhalter. Wenn eine Funktion aufgerufen wird, übergeben Sie einen Wert an den Parameter. Dieser Wert wird als tatsächlicher Parameter oder Argument bezeichnet. Die Parameterliste bezieht sich auf den Typ, die Reihenfolge und die Anzahl der Parameter einer Funktion. Parameter sind optional; Das heißt, eine Funktion darf keine Parameter enthalten.
Return Type- Eine Funktion kann eine Liste von Werten zurückgeben. Der return_types ist die Liste der Datentypen der Werte, die die Funktion zurückgibt. Einige Funktionen führen die gewünschten Operationen aus, ohne einen Wert zurückzugeben. In diesem Fall ist der return_type nicht erforderlich.
Function Body - Es enthält eine Sammlung von Anweisungen, die definieren, was die Funktion tut.
Beispiel
Der folgende Quellcode zeigt eine aufgerufene Funktion max(). Diese Funktion verwendet zwei Parameter num1 und num2 und gibt das Maximum zwischen den beiden zurück -
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
Eine Funktion aufrufen
Beim Erstellen einer Go-Funktion definieren Sie, was die Funktion zu tun hat. Um eine Funktion zu verwenden, müssen Sie diese Funktion aufrufen, um die definierte Aufgabe auszuführen.
Wenn ein Programm eine Funktion aufruft, wird die Programmsteuerung auf die aufgerufene Funktion übertragen. Eine aufgerufene Funktion führt eine definierte Aufgabe aus. Wenn ihre return-Anweisung ausgeführt wird oder wenn ihre schließende Klammer zum Ende der Funktion erreicht ist, gibt sie die Programmsteuerung an das Hauptprogramm zurück.
Um eine Funktion aufzurufen, müssen Sie lediglich die erforderlichen Parameter zusammen mit ihrem Funktionsnamen übergeben. Wenn die Funktion einen Wert zurückgibt, können Sie den zurückgegebenen Wert speichern. Zum Beispiel -
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
var ret int
/* calling a function to get max value */
ret = max(a, b)
fmt.Printf( "Max value is : %d\n", ret )
}
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
var result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
Wir haben die Funktion max () zusammen mit der Funktion main () beibehalten und den Quellcode kompiliert. Beim Ausführen der endgültigen ausführbaren Datei wird das folgende Ergebnis erzielt:
Max value is : 200
Rückgabe mehrerer Werte von Function
Eine Go-Funktion kann mehrere Werte zurückgeben. Zum Beispiel -
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Kumar Mahesh
Funktionsargumente
Wenn eine Funktion Argumente verwenden soll, muss sie Variablen deklarieren, die die Werte der Argumente akzeptieren. Diese Variablen werden als bezeichnetformal parameters der Funktion.
Die formalen Parameter verhalten sich wie andere lokale Variablen innerhalb der Funktion und werden beim Eintritt in die Funktion erstellt und beim Beenden zerstört.
Beim Aufrufen einer Funktion gibt es zwei Möglichkeiten, wie Argumente an eine Funktion übergeben werden können:
Sr.Nr. | Anruftyp & Beschreibung |
---|---|
1 | Call by value Diese Methode kopiert den tatsächlichen Wert eines Arguments in den formalen Parameter der Funktion. In diesem Fall haben Änderungen am Parameter innerhalb der Funktion keine Auswirkung auf das Argument. |
2 | Rufen Sie als Referenz an Diese Methode kopiert die Adresse eines Arguments in den formalen Parameter. Innerhalb der Funktion wird die Adresse verwendet, um auf das tatsächliche Argument zuzugreifen, das im Aufruf verwendet wird. Dies bedeutet, dass Änderungen am Parameter das Argument beeinflussen. |
Standardmäßig verwendet Go Call-by-Value, um Argumente zu übergeben. Im Allgemeinen bedeutet dies, dass der Code innerhalb einer Funktion die zum Aufrufen der Funktion verwendeten Argumente nicht ändern kann. Das obige Programm verwendete beim Aufrufen der Funktion max () dieselbe Methode.
Funktionsnutzung
Eine Funktion kann auf folgende Arten verwendet werden:
Sr.Nr. | Funktionsnutzung & Beschreibung |
---|---|
1 | Funktion als Wert Funktionen können im laufenden Betrieb erstellt und als Werte verwendet werden. |
2 | Funktionsabschlüsse Funktionsschließungen sind anonyme Funktionen und können in der dynamischen Programmierung verwendet werden. |
3 | Methode Methoden sind spezielle Funktionen mit einem Empfänger. |