函数是为完成某一功能的程序指令(语句)的集合称为函数。在 Go 中,函数分为:自定义函数和系统函数。
函数的定义
以下是函数的基本语法 描述:
func 函数名(形参列表) (返回值类型列表) {
...语句块
return 返回值1, 返回值2
}
-
形参列表表示函数的输入
-
函数中的语句表示为了实现某一功能的代码块
-
函数可以有返回值,也可以没有,在 Go 语言中,一个函数可以有多个返回值
-
返回多个值时,如果不使用那么会出现错误,可以使用
_
符号占位忽略var val, _ = getVal()
-
如果返回值只有一个,那么在声明函数的时候可以省略返回值类型的
()
func getVal() int { return 1 }
-
基本数据类型和数组默认都是值传递的,也就是值拷贝,在函数内修改,是不会影响到原来的值
-
在 Go 中,函数也是一种数据类型,可以赋值给一个变量,通过该变量可以对函数进行调用
func main() { increment(cal) // 也可以使用下面这种方式来传递 increment(func (num int) int { return 1 }) } func cal(num int) int { return 1 } // 创建一个函数类型 type GetVal = func(num int) int func increment(getVal GetVal) int { return getVal(123) }
可以通过函数名加上小括号去调用指定的函数
func main() {
var result = increment(1, 2)
fmt.Println("result =", result) // 3
}
func increment(max int, min int) int {
return max + min
}
init 函数
每一个源文件都可以包含一个 init()
函数,该函数会在 main()
函数执行前被 Go 运行框架调用,也就是说 init()
会在 main()
函数前被调用。
import "fmt"
func main() {
fmt.Println("main 函数被执行了")
}
func init() {
fmt.Println("inti 函数被执行了")
}
以上代码 init()
函数会先于 main()
函数执行:
➜ go-learn go run go-func.go
inti 函数被执行了
main 函数被执行了
在 Go 语言中,变量和函数的定义顺序是:
全局变量 ---> init()
---> main()
init()
函数的作用通常是用来完成一些初始化工作,例如初始化一些程序运行时必要的全局数据。
匿名函数
Go 支持匿名函数,如果我们某个函数只是希望被只用一次,可以使用匿名函数,匿名函数也可以实现多次调用。
var MyFun = func() {
fmt.Println("MyFunc")
}
func main() {
MyFun() // 调用全局匿名函数
var localFun = func () { // 定义一个局部匿名函数
fmt.Println("local func") // 使用局部定义的匿名函数
}
localFun()
}
标签:函数,int,init,func,Go,main
From: https://www.cnblogs.com/CloverYou/p/17474299.html