一、可變引數
支持可變長引數串列的函式可以支持任意個傳入引數,比如fmt.Println函式就是一個支持可變長引數串列的函式,
package mainimport "fmt"func main() { fmt.Println(add()) fmt.Println(add(1, 2, 3, 4, 5, 6)) //使用切片作為引數 arr := []int{1, 2, 3, 4, 5, 6} fmt.Println(add(arr...))}//可變引數的 函式func add(arr ...int) (result int) { fmt.Printf("arr->type= %T \n", arr) for _, value := range arr { result += value } return result}
注意事項:
- 1、一個函式最多只能有一個可變引數
- 2、如果函式有多個不同型別的引數,可變引數必須在后邊
二、函式的遞回使用
當一個函式在其函式體內呼叫自身時,則稱之為遞回,遞回函式對于解決數學上的問題是非常有用的,比如計算階乘,生成斐波那契數列等,
構成遞回需具備的條件:
- 子問題須與原始問題為同樣的事,且更為簡單,
- 不能無限制地呼叫本身,需要有一個出口,退出遞回狀態
package mainimport "fmt"func main() { //使用切片作為引數 fmt.Println(factorial(10))}//可變引數的 函式func factorial(num int) int { if num <= 0 { return 1 } return num * factorial(num-1)}

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67373.html
標籤:Go
上一篇:GO基礎之流程控制陳述句
下一篇:go語言特點
