Last Updated: May 22, 2026
Calling a function in Go usually looks like cart.AddItem(...), where the compiler resolves the name at build time. Reflection flips that around: you hold a function or a method as a reflect.Value, build its arguments as a []reflect.Value, and invoke it through Value.Call. This lesson covers how that machinery works, how to dispatch methods by their string name on a service struct, and how to handle the panics that misuse can trigger.