What
It is a way to examine if your type has the methods that the interface your type implements.
// var _ AnInterface = YourType
// From https://medium.com/@matryer/golang-tip-compile-time-checks-to-ensure-your-type-satisfies-an-interface-c167afed3aae
// for pointers to struct
type MyType struct{}
var _ MyInterface = (*MyType)(nil)
// for struct literals
var _ MyInterface = MyType{}
// for other types - just create some instance
type MyType string
var _ MyInterface = MyType("doesn't matter")
Why
It is useful to do a type check or to see if your type has the necessary methods. This is very useful in a large codebase, and you can see the error directly from the IDEs.