声明函数
func 函数名(入参1 类型, 入参2 类型,… )(出参1 类型, 出参2 类型…){
函数体,写逻辑
出参一定要全部 return,
return 出参
}
函数内部不可以声明带名字的函数,可以声明匿名函数和自执行函数
函数名大写可以被其他包调用,小写私有,变量名也是一样
return 后面可以不写出参变量名
func main() {
a, b := t1(2, 8)
fmt.Println(a, b)
}
func t1(a int, b int) (ret1 int, ret2 int) {
ret1 = a
ret2 = 90
//return ret1, ret2
return
}
// 2 90
匿名函数a := func(){}
不定参函数
相当于 python 的 (*args, **kwargs)
func main() {
un(1, 2, 4, 5, "hello")
b := []interface{}{2, 4, 5, "hello"}
// 将切片传入不定参函数
un(1, b...)
}
// 不定项参数放在最后一位
func un(a int, b ...interface{}) {
fmt.Println(a, b)
for index, value := range b {
fmt.Println(index, value)
}
}
/*
1 [2 4 5 hello]
0 2
1 4
2 5
3 hello
*/
自执行函数
func main() {
// 自执行函数
func(a int) {
fmt.Println("hello", a)
}(9)
}
//hello 9
闭包函数
函数返回一个函数就叫闭包函数文章来源:https://www.toymoban.com/news/detail-552016.html
func main() {
mo()(4)
}
func mo() func(int) {
return func(i int) {
fmt.Println("闭包函数", i)
}
}
//闭包函数 4
延迟调用 defer,先进后出文章来源地址https://www.toymoban.com/news/detail-552016.html
func main() {
defer d2()
defer d()
fmt.Println("hello")
}
func d() {
fmt.Println("defer print")
}
func d2() {
fmt.Println("defer 2")
}
/*
hello
defer print
defer 2
*/
到了这里,关于go 笔记 第七章 golang 的函数 func 方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!