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

2022-10-18 17:39:21 +08:00
 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 应该在匿名函数前面呢
2129 次点击
所在节点    Go 编程语言
6 条回复
wangnimabenma
2022-10-18 18:25:28 +08:00
```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 18:31:26 +08:00
@wangnimabenma 请问 func 是匿名函数, DeleteApisByIds 又是个函数,这是什么写法呢?
dilu
2022-10-18 19:10:17 +08:00
func 是声明函数,不是声明匿名函数....
beixiao
2022-10-18 19:19:01 +08:00
https://go.dev/tour/methods/4
这叫指针接收者方法,建议 op 先把基础大概过一遍
U87
2022-10-19 10:09:30 +08:00
@beixiao 好的谢谢,我先过遍基础,别的语言转过来的,有点自大了,直接撸项目。。
KaynW
2022-10-19 11:06:20 +08:00
你这不是初学了, 你这是没学啊🥺

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

https://www.v2ex.com/t/887851

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

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

© 2021 V2EX