函数 「go
2020-11-08 14:49
120 查看
声明函数
在go语言中声明函数像下面这样。
// 单参数,单返回值 func MyFuc(v1 int) int { // 参数 v1 int类型 返回值int类型 } // 多参数,多返回值 func MyFuc(v1 int, v2 string) (int,string) { // 参数 v1 int类型v2 string类型 返回值两个值 类型分别为 int,string }
多返回值函数
go语言中的函数可以有多个返回值。
func MyFuc(v1 int, v2 string) (int,string) { return v1,v2 }
调用函数的时候需要用多个变量来接收。
a, b := MyFuc(1,"hello bear")
这样变量a就获取到了int值1,变量b获取到string类型值hello bear。
有时候我们只需要获取到其中一个变量该怎么办呢?
_, b := MyFuc(1,"hello bear")
不需要的变量用_代替就可以了。
函数作为参数和返回值
go语言中函数可以作为函数的参数和返回值
func MyFucFuc(f func(v1 int) int) func(v1 int) int { return f }
这个写法示例中 传入了一个类型为
func(v1 int) int的函数,返回一个
func(v1 int) int类型的函数。这个例子没有实际的意义,实际使用的时候,我们可以通过这种模式在函数执行前做一些操作,就像装饰器模式那样。
可变参数
可变参数就是参数的数量不确定,写法如下。
func MyFuc(v1 ...int) int { }
这样变量v1其实是一个数组,遍历v1获取变量。
defer函数
defer函数的作用像java语言中的finally,最后执行
func MyFuc1(v1 int) int { //do something } func MyFuc2(v1 int) int { defer MyFuc1(1) //do something }
上面代码中,执行
MyFuc2函数,在函数体中的所有代码执行完成,才会执行
MyFuc1(1),defer下面的代码发生错误,defer 的函数也会照常执行,这适合我们用来写一些释放资源的功能或者是日志记录
相关文章推荐
- Go基础之函数外部简单调用
- GO-MAP函数demo
- GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!
- go实例—函数或方法的可变长参数
- [Golang 学习1]Go语言中函数new与make的使用和区别
- Go语言函数中的闭包学习
- Go各种类型转换及函数的高级用法
- 问题:idea 导入go项目后函数跳转不了
- go_函数
- go-互斥锁及原子函数
- 【Go语言】【11】GO语言的包和函数
- Go学习笔记 (二) : 流程控制(if,for,switch) 与 函数 与 struct (匿名字段)
- GO函数倒叙输出
- go函数(方法)返回值是有返回值的函数
- 【Go学习】理解Go语言中的函数闭包
- Go语言之函数方法
- go语言[7] 函数,方法和接口
- 22-go内置函数
- go语言中将函数作为变量传递
- Go 函数