初学 go,请问这是闭包的高阶函数吗?

2022 年 10 月 18 日
 U87
func (apiService *ApiService) DeleteApisByIds(ids request.IdsReq) (err error) {
var apis []system.SysApi
err = global.GVA_DB.Find(&apis, "id in ?", ids.Ids).Delete(&apis).Error
if err != nil {
return err
} else {
for _, sysApi := range apis {
success := CasbinServiceApp.ClearCasbin(1, sysApi.Path, sysApi.Method)
if !success {
return errors.New(sysApi.Path + ":" + sysApi.Method + "casbin 同步清理失败")
}
}
e := CasbinServiceApp.Casbin()
err = e.InvalidateCache()
if err != nil {
return err
}
}
return err
}
咋看别人的例子都是 DeleteApisByIds 应该在匿名函数前面呢
2781 次点击
所在节点    Go 编程语言
6 条回复
wangnimabenma
2022 年 10 月 18 日
```go
func (apiService *ApiService) DeleteApisByIds(ids request.IdsReq) (err error) {
var apis []system.SysApi
err = global.GVA_DB.Find(&apis, "id in ?", ids.Ids).Delete(&apis).Error
if err != nil {
return err
} else {
for _, sysApi := range apis {
success := CasbinServiceApp.ClearCasbin(1, sysApi.Path, sysApi.Method)
if !success {
return errors.New(sysApi.Path + ":" + sysApi.Method + "casbin 同步清理失败")
}
}
e := CasbinServiceApp.Casbin()
err = e.InvalidateCache()
if err != nil {
return err
}
}
return err
}
```
U87
2022 年 10 月 18 日
@wangnimabenma 请问 func 是匿名函数, DeleteApisByIds 又是个函数,这是什么写法呢?
dilu
2022 年 10 月 18 日
func 是声明函数,不是声明匿名函数....
beixiao
2022 年 10 月 18 日
https://go.dev/tour/methods/4
这叫指针接收者方法,建议 op 先把基础大概过一遍
U87
2022 年 10 月 19 日
@beixiao 好的谢谢,我先过遍基础,别的语言转过来的,有点自大了,直接撸项目。。
Yooloo
2022 年 10 月 19 日
你这不是初学了, 你这是没学啊🥺

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/887851

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX