The Relationship Between Interfaces and Reflection
Interfaces are one of the fundamental tools for abstraction in Go. Interfaces store type information when assigned a value. Reflection is a method of examining type and value information at runtime. Go implements reflection with the reflect package which provides types and methods for inspecting portions of the interface structure and even modifying values at runtime. With this post I hope to illustrate how parts of the interface structure relate to the reflect API and ultimately make using the reflect package more approachable!