Go 语言最少有个 main() 函数。函数定义格式:
func function_name( [parameter list] ) [return_types] {
函数体
}
说明下,函数的返回值return_types可以没有,也可以为多个,中间用“,”隔开
Init函数:每个源文件中都可以包含一个init函数,这个函数在main函数被go框架调用, 通常可以在init中完成main函数之前的初始化工作。
如果一个文件中同时包含有全局变量定义、init函数和main函数,执行顺序为:
全局变量定义——》init函数——》main函数,看一个示例就懂了:
package main import "fmt"
var age = test()
func test() int{ fmt.Println("test()~") return 90 }
func init(){ fmt.Println("init()~") }
func main(){ fmt.Println("main()~,age=",age) } |
执行结果: G:\go\src\init>go run init.go test()~ init()~ main()~,age= 90 |
匿名函数:只希望使用一次;
使用方式1:定义直接使用
res := func (n1 ,n2 int) int {
return n1 + n2
}(10,20)
上面“(10,20)”即直接传参并调用。
使用方式2:将匿名函数赋值给一个变量
a := func (n1,n2 int) int{
return n1 + n2
}
则a为一个函数变量,可以当函数来使用如:res := a(10,20)