Was ist eine Funktion?
Funktionen sind Codeblöcke, die bestimmte Aufgaben ausführen. Eine Funktion nimmt Eingaben entgegen, führt einige Berechnungen mit der Eingabe durch und erzeugt eine Ausgabe.
Die Syntax der Go-Sprachfunktionsdeklaration lautet wie folgt:
func functionname(parametername type) returntype { //function body }
Die Funktionsdeklaration beginnt mit dem Schlüsselwort func, gefolgt vom Funktionsnamen. Parameter werden in eckigen Klammern () angegeben, gefolgt vom Rückgabetyp der Funktion. Die Syntax zum Angeben von Parametern besteht aus dem Parameternamen, gefolgt vom Parametertyp. Sie können eine beliebige Anzahl von Parametern angeben, wie folgt:
(parameter1 type, parameter2 type)
Der Hauptteil der Funktion steht in geschweiften Klammern.
Parameter und Rückgabewerte sind optional, daher ist die folgende Deklarationsmethode auch eine gültige Funktionsdeklaration:
func functionname() { }
Lassen Sie uns eine Funktion schreiben, deren Parameter der Stückpreis des Produkts und die Menge sind des Produkts, um den Gesamtpreis des Produkts zu berechnen und es zurückzusenden.
func calculateBill(price int, no int) int { var totalPrice = price * no return totalPrice }
Die Eingabeparameter der obigen Funktion sind „price“ und „no“, beide vom Typ „int“. Das Produkt der beiden wird „totalPrice“ zugewiesen und als Rückgabewert „totalPrice“ ebenfalls vom Typ „int“ zurückgegeben.
Wenn aufeinanderfolgende Parameter vom gleichen Typ sind, können wir die Angabe des Typs für jeden Parameter vermeiden und müssen nur den Typ des letzten Parameters angeben. Beispielsweise kann „price int“ als „price“ und „no int“ geschrieben werden , also kann die obige Funktion wie folgt geändert werden:
func calculateBill(price, no int) int { var totalPrice = price * no return totalPrice }
Nachdem wir nun eine Funktion geschrieben haben, versuchen wir, diese Funktion aufzurufen. Die Syntax zum Aufrufen einer Funktion lautet Funktionsname (Parameter). Die obige Funktion kann wie folgt aufgerufen werden:
calculateBill(10, 5)
Das Folgende ist das fertige Programm:
package main import ( "fmt" ) func calculateBill(price, no int) int { var totalPrice = price * no return totalPrice } func main() { price, no := 90, 6 totalPrice := calculateBill(price, no) fmt.Println("Total price is", totalPrice) }
Ausführung[1]
Die obige Codeausgabe:
Total price is 540
Go 语言是允许函数返回多个值的。我们来写一个 rectProps() 函数,该函数的参数是长方形的 length 和 width,返回长方形的 area(面积) 和 perimeter(周长)。
package main import ( "fmt" ) func rectProps(length, width float64)(float64, float64) { var area = length * width var perimeter = (length + width) * 2 return area, perimeter } func main() { area, perimeter := rectProps(10.8, 5.6) fmt.Printf("Area %f Perimeter %f", area, perimeter) }
执行[2]
如果一个函数返回多个值则需要使用 () 指定,比如:
func rectProps(length, width float64)(float64, float64)
该函数有两个 float64 参数 length 和 width,也返回两个 float64 类型的值。
上面的代码输出:
Area 60.480000 Perimeter 32.800000
可以从函数返回命名值。如果返回值被命名,则可以认为它在函数的第一行被声明为变量,并初始化为相应类型的零值。
上面的 rectProps() 函数可以使用命名的返回值重写:
func rectProps(length, width float64)(area, perimeter float64) { area = length * width perimeter = (length + width) * 2 return //no explicit return value }
area 和 perimeter 是函数中命名的返回值。
需要注意的是,函数里的 return 语句没有返回任何值。由于在函数声明中将 area 和 perimeter 指定为返回值,因此当遇到 return 语句时,它们会自动从函数中返回。
Go 语言里面,下划线 _ 可以被当做空白符使用。它可以用来代替任何类型的任何值,让我们看看这个空白标识符有什么用。
rectProps() 函数返回长方形的面积和周长。如果我们只想要面积,而不想要周长那该怎么办呢?这时候空百符 _ 就可以派上用场了。
package main import ( "fmt" ) func rectProps(length, width float64) (float64, float64) { var area = length * width var perimeter = (length + width) * 2 return area, perimeter } func main() { area, _ := rectProps(10.8, 5.6) // perimeter is discarded fmt.Printf("Area %f ", area) }
执行[3]
上面代码的第 13 行,我们接收了函数返回的 area,并使用 _ 忽略了 perimeter。
Das obige ist der detaillierte Inhalt vonGo-Sprachgrundlagen-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!