Другой подход к этому - определить интерфейс
type command interface {
DoLoop()
}
реализовать структуру, которая его реализует
type Delete struct {
instance string
}
func (dev Delete) DoLoop() {
fmt.Println("input: delete ")
}
Создать карту, которая содержит структуру
mainFuncTable = make(map[string]command)
mainFuncTable["delete"] = Delete{"new"}
вызов функции
func route(command string) {
cmd := mainFuncTable[command]
cmd.DoLoop()
}
Это немного косвенно, но работает