go函数声明
go函数使用func关键字声明,代码如下:
/*
go函数
*/
package main
func add(num1 int, num2 int) int {
return num1 + num2
}
// 有两个返回值的函数
// 有多个返回值时,用括号括起来
func div(a, b int) (int, int) {
return a / b, a % b
}
// 可以给返回值取名字,例如
func div2(a, b int) (q, r int) {
return a / b, a % b
}
// 有多个返回值时,也可以有这种写法
// 函数体太长时不建议用下面的方法写
func div3(a, b int) (q, r int) {
q = a / b
r = a % b
return
}
func main() {
}
go函数的特点
(1)可以有多个返回值
(2)形参类型相同时,可以合并写
(3)形参的类型必须写清楚,不能省略
变长参数
代码
package main
import "fmt"
// 变长参数
// 注意下面的nums不是数组
func sum(nums ...int) int {
s := 0
for i := range nums {
s += nums[i]
}
return s
}
func main() {
fmt.Println(sum(100, 200, 300, 400))
}
函数做参数
package main
import (
"fmt"
"math"
)
func apply(op func(int, int) int, a, b int) int {
return op(a, b)
}
func pow(a, b int) int {
return (int)(math.Pow(float64(a), float64(b)))
}
func main() {
result := apply(pow, 2, 3)
fmt.Println(result)
}