如何在golang中使用匿名函数

本篇文章给大家分享的是有关如何在golang中使用匿名函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

packagemain
import(
"fmt"
"go_code/chapter02/funinit/utils"
)
//3、全局匿名函数
var(
Fun1=func(n1int,n2int)int{
returnn1*n2
}
)
//init函数,通常在init函数中完成初始化工作
funcmain(){
//1、在定义匿名函数时就直接调用,这种方式匿名函数只能调用一次
res1:=func(n1int,n2int)int{
returnn1+n2
}(10,20)
fmt.Println("res1=",res1)
//2、a的数据类型就是函数类型,此时我们可以通过a完成调用
a:=func(n1int,n2int)int{
returnn1+n2
}
res2:=a(100,1000)
fmt.Println("res2=",res2)
res3:=Fun1(100,1000)
fmt.Println("res3=",res3)
fmt.Println("main......")
fmt.Println("Ageisvalue",utils.Age,"Nameisvalue",utils.Name)
}

没什么好说的, 见一个,熟悉一个:

如何在golang中使用匿名函数

packagemain
import(
"fmt"
)
funcmain(){
func(){
fmt.Printf("func1\n")
}()
func(xint){
fmt.Printf("func2,xis%d\n",x)
}(2)
a:=func(xint)int{
fmt.Printf("func3,xis%d\n",x)
return5
}
fmt.Println(a(3))
fmt.Printf("%T\n",func(){
fmt.Printf("func1\n")
})
fmt.Printf("%T\n",func(xint){
fmt.Printf("func2,xis%d\n",x)
})
fmt.Printf("%T\n",a)
}

结果:

func 1func 2, x is 2func 3, x is 35func()func(int)func(int) int

继续看:

packagemain
import(
"fmt"
)
funcmain(){
test(func(xstring){
fmt.Println(x)
})
}
functest(ffunc(string)){
f("hello")
}

结果:hello

但如下都错误, 想想为什么:

packagemain
import(
"fmt"
)
funcmain(){
func(){
fmt.Printf("func1\n")
}
}
packagemain
import(
"fmt"
)
funcmain(){
test(funcg(xstring){
fmt.Println(x)
})
}
functest(ffunc(string)){
f("hello")
}

最后, 看看下面两个正确程序的:

packagemain
import(
"fmt"
)
varx="hello"
funcmain(){
test(func(x*string){
*x="world"
})
fmt.Println(x)
}
functest(ffunc(*string)){
}
packagemain
import(
"fmt"
)
funcmain(){
vars1="hello"
vars2="world"
test(func(x*string,y*string){
*x+="_123"
*y+="_456"
},&s1,&s2)
fmt.Println(s1,s2)//hello_123world_456
}
functest(ffunc(*string,*string),s1*string,s2*string){
f(s1,s2)
}
packagemain
import(
"fmt"
)
vars1="hello"
vars2="world"
funcmain(){
test(func(x*string,y*string){
*x+="_123"
*y+="_456"
})
fmt.Println(s1,s2)//hello_123world_456
}
functest(ffunc(*string,*string)){
f(&s1,&s2)
}

以上就是如何在golang中使用匿名函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注恰卡编程网行业资讯频道。

发布于 2021-03-17 20:55:11
收藏
分享
海报
0 条评论
163
上一篇:使用vue怎么离开页面后执行函数 下一篇:async 函数如何在Node.js中使用
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码