为了账号安全,请及时绑定邮箱和手机立即绑定

创建通用函数,该函数可以接受具有相关参数的任何函数以供以后执行

创建通用函数,该函数可以接受具有相关参数的任何函数以供以后执行

Go
慕斯王 2022-11-08 17:01:16
是否可以创建一个通用函数,该函数可以接受任何其他函数及其相关参数,这些参数可以稍后用于执行传递的函数。我有一个需求,我计划首先收集所有这些调用并维护这些“作业”的一些元数据,然后稍后通过 go 例程执行它们。// some kind of job function func someCoolJob(arg1 type1, arg2 type2) type3 {    // do processing    return "value of type3"}现在可以创建一个通用函数,它可以采用任何具有任何签名的函数。以前我在python中做过类似的实现,有什么办法吗?func processor(someFunc, relatedArgs){    // I will save some execution info/ tracking state for someFunc here    // later I can do something like below in my code    go someFunc(relatedArgs)}有没有更好的方法来组织这个?其他一些实现方式?
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

通过使用闭包传递参数。


更改processor为不带参数的函数。


func processor(fn func()){

    go fn()

}

使用闭包传递函数和参数:


processor(func() { someCoolJob(arg1, arg2) })


查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 71 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信