函数
代码
//example.go
package test
import "fmt"
/*这里可以简写
func getSum(n1,n2 int) int {
...
}
*/
//可以有多个返回值
func getRes(n1 int, n2 int) (int, int) {
sum := n1 + n2
difference := n1 - n2
return sum, difference
}
/*这里可以简写
func getSum(n1,n2 int) (sum, difference int) {
...
}
*/
//go的函数支持给返回值命名
func getRes1(n1 int, n2 int) (sum int, difference int) {
sum = n1 + n2
difference = n1 - n2
//此时return sum,difference可以直接简写为return
return
}
func Function() {
res1, res2 := getRes1(2, 3)
fmt.Println("res1=", res1, "res2=", res2)
}
func Function1() {
/*
注意:函数不是变量,但是它实际存在于内存中。
函数名的本质是一个指针常量。该指针保存其函数所在的内存地址
函数名 != 调用该函数
函数名() == 调用该函数
*/
fmt.Printf("%v,%T\n", getRes, getRes) //0xb05200,func(int, int) (int, int)
//匿名函数
var outPut = func() {
fmt.Println("output")
}
outPut()
//立即调用的匿名函数
res1 := func(n1 int) (sum int) {
return n1
}(1)
fmt.Println(res1)
}
//main.go
package main
import (
"GoExample/test"
)
func main() {
//test.Function()
test.Function1()
}
本博客参考自:
https://www.bilibili.com/video/BV1s341147US/?spm_id_from=333.337.search-card.all.click&vd_source=a642bb3ddc5b706845426dc41d73fbda