是否可以創建一個通用函式,該函式可以接受任何其他函式及其相關引數,這些引數可以稍后用于執行傳遞的函式。我有一個需求,我計劃首先收集所有這些呼叫并維護這些“作業”的一些元資料,然后稍后通過 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)
}
有沒有更好的方法來組織這個?其他一些實作方式?
uj5u.com熱心網友回復:
通過使用閉包傳遞引數。
更改processor為不帶引數的函式。
func processor(fn func()){
go fn()
}
使用閉包傳遞函式和引數:
processor(func() { someCoolJob(arg1, arg2) })
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/429819.html
