GO编程(打卡)-Task07: 函数
函数
-
相关用法
package main import ( "fmt" "errors" ) // 函数定义 func getSum(num1,num2 int) int{ return num1+num2 } // 变长参数 放在函数参数列表的最后一个 func min(nums ...int) int { if len(nums) == 0{ return 0 } min := nums[0] for _, v := range nums{ if v < min{ min = v } } return min } // 多返回值 命名返回值(可使用不带参数的return语句) func div(a,b float64)(result float64,err error){ if b==0{ return 0,errors.New("被除数不能为0") } result = a/b return } // 闭包实现斐波那契数列 func fibonacci() func() int{ n1,n2 := 0,1 return func() int{ n := n2 n2 = n1 + n2 n1 = n return n2 } } func main() { fmt.Println("定义函数,求参数1,2的和:",getSum(1,2)) myslice := []int{3,6,8,1,3,5,10} fmt.Println("变长参数函数,求最小值:",min(myslice...)) res,err := div(3,0) fmt.Println("多返回值函数,求商:",res,err) // 匿名函数 myfunc := func() string{ return "hello world" } fmt.Println("匿名函数,输出文本",myfunc()) myfunc1 := fibonacci() fmt.Println("闭包函数,实现斐波那契数列",myfunc1()) fmt.Println("闭包函数,实现斐波那契数列",myfunc1()) fmt.Println("闭包函数,实现斐波那契数列",myfunc1()) fmt.Println("闭包函数,实现斐波那契数列",myfunc1()) }
-
...
的用法-
用于函数有多个不定参数的情况
-
slice可以被打散进行传递,即一个元素一个元素的传递
-
参考
https://github.com/datawhalechina/go-talent/blob/master/6.函数.md