Golang-为什么在ServeHTTP函数中发生此错误:反射:调用reflect.Value.Call对零值

My code and error message are in here: https://gist.github.com/WithGJR/a700e5d5bd35b5c8eef2

Could anyone explain for me why this error occured and how to fix it? Thanks.

Because value.MethodByName(info.controllerMethodName) probably returns an invalid method, you should check method.IsValid().

When something like this happens you start adding a bunch of log.Printlns to see what's happening, well until a proper debugger is introduced.

//edit

router.Get("/", controllers.IndexController{}, "Index")

You're passing a value, func (this *IndexController) Index() is defined on the pointer so your MethodByName isn't working right, change your router.Get to :

router.Get("/", &controllers.IndexController{}, "Index")