我有這個:type ret = func(http.ResponseWriter, martini.Params, *http.Request);func VerifyParam(paramName string, validators... func()) ret { return func(res http.ResponseWriter, params martini.Params, req *http.Request) { // ... }}即使返回類型就在那里,我也必須聲明返回類型太糟糕了,有沒有辦法不必重復(fù)返回類型聲明?
1 回答
MMTTMM
TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個贊
你說你不想“用類型聲明重復(fù)自己”,但后面的部分return不是類型聲明;它是函數(shù)文字的開始。
如果您想要一個函數(shù)字面量(或在包級別定義的函數(shù)或方法),則必須指定參數(shù)、它們的類型和返回類型。沒有辦法解決這個問題。
如果您可以將函數(shù)表示為計(jì)算的結(jié)果,那么您可以依賴類型推斷。例如,如果您有一個返回 martini http 處理程序的函數(shù),那么您可以return myMartiniHandler(123)不使用任何類型。不過,這將是一個例外情況,因?yàn)榇蠖鄶?shù)處理程序不只是重用一些現(xiàn)有代碼。
- 1 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
