Golang函數-不定參數列表和多返回值函數
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.不定參函數
1>.不定參數的產生背景
在定義函數的時候根據需求指定參數的個數和類型,但是有時候如果無法確定參數的個數,此時我們就可以通過"不定參數列表"來解決這個問題,Go語言的不定參數列表和Python中的"*args"有着異曲同工之妙。
Go語言使用不定參數列表語法格式如下:
func 函數名(數據集合 ...數據類型)
2>.不定參數的案例
package main import ( "fmt" ) /* 不定參函數定義: 計算N個整形數據的和 */ func sum(arr ...int) int { value := 0 /* 使用數組下標進行遍歷 */ //for index := 0; index < len(arr); index++ { // value += arr[index] //} /* 使用range關鍵字進行范圍遍歷,range會從集合中返回兩個數: 第一個是對應的坐標,賦值給了匿名變量"_" 第二個對應的是值,賦值給了變量"data" */ for _, data := range arr { value += data } return value } func main() { /* 我們在調用函數時可以指定函數參數的個數不盡相同。 */ fmt.Println(sum(1, 2, 3)) fmt.Println(sum(1, 2, 3, 4, 5)) fmt.Println(sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) }
二.多返回函數
package main import ( "fmt" ) /* 函數的返回值是通過函數中的return語句獲得的,return后面的值也可以是一個表達式,只要返回值類型和定義的返回值列表所匹配即可。 Go語言支持多個返回值。 */ func test() (x int, y float64, z string) { return 18, 3.14, "尹正傑" } func main() { /* 如果函數定義了多個返回值,就需要使用多個變量來接收這些返回值 可以使用匿名變量("_")來接收不使用的變量的值,因此我們無法將匿名變量的值取出來 */ a, _, c := test() fmt.Println(a) fmt.Println(c) }