Это полностью зависит от вас, если вы создаете именованный тип.Технически вы определяете тип, даже если вы делаете это анонимно в подписи (в вашем коде тип func()
).Должно ли оно быть определено с помощью имени, зависит от вас и зависит от вашего варианта использования и потребностей.
Независимо от того, определяете ли вы именованный тип или нет, сигнатуры функций должны совпадать (вы не можете передатьfunc(http.ResponseWriter, http.Request)
в func()
аргумент), и вы должны передать функцию вместо ее вызова и передачи возвращаемого значения (которого у него нет):
// Correct arguments required
func Call(path string, method func(http.ResponseWriter, http.Request)) {
// TODO launch the method here
}
func routes() {
// Index() calls the function, you just want to pass a reference to it
app.Call("/", controllers.Index)
}