创建通用函数,它可以接受任何函数及其相关参数供以后执行
create generic function which can accept any function with its related args for later execution
是否可以创建一个通用函数,它可以接受任何其他函数及其相关参数,这些参数稍后可以用来执行传递的函数。我有一个要求,我计划首先收集所有这些调用并维护这些“作业”的一些元数据,然后通过 go routines 执行它们。
// 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)
}
在 go 中有更好的组织方式吗?其他实现方式 ?
使用 closure.
传递参数
更改 processor
以采用不带参数的函数。
func processor(fn func()){
go fn()
}
使用闭包传递函数和参数:
processor(func() { someCoolJob(arg1, arg2) })
是否可以创建一个通用函数,它可以接受任何其他函数及其相关参数,这些参数稍后可以用来执行传递的函数。我有一个要求,我计划首先收集所有这些调用并维护这些“作业”的一些元数据,然后通过 go routines 执行它们。
// 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)
}
在 go 中有更好的组织方式吗?其他实现方式 ?
使用 closure.
传递参数更改 processor
以采用不带参数的函数。
func processor(fn func()){
go fn()
}
使用闭包传递函数和参数:
processor(func() { someCoolJob(arg1, arg2) })