Interfaces

2026
Few bugs in Go are as disorienting as this one: you return nil from a function, check the result against nil, and the check fails. No type assertion panic, no runtime error — just a quiet wrong answer that sends you down a debugging rabbit hole.
Interfaces are one of the most distinctive parts of Go’s type system and reliably show up in interviews. The core idea is small but the implications go deep.