1、go函数定义格式如下:
func function_name([parameter list]) [return_types]{
}
2、go函数引用传递值:
package main
import “fmt”
func main() {
var a int = 100
var b int = 200
//fmt.Println()
swap(&a, &b)
}
func swap(x *int, y *int) {
var temp int
temp = *x //保持x地址上的值
*x = *y //y值赋给x
*y = temp //将temp值给y
}
2、函数作为参数传递,实现回调:
package main
import "fmt"
type cb func(int) int
func main() {
testCallBack(1, callBack)
testCallBack(2, func(x int) int{
fmt.Printf("call back")
return x
})
}
func testCallBack(x int, f cb){
f(x)
}
func callBack(x int) int {
return x
}
函数体作为实参:
package main
import (
"fmt"
"math"
)
func main() {
getSquareRoot := func(x float64) float64 {
return math.Sqrt(x)
}
}
//使用函数*
fmt.Println(getSquareRoot(9))