Composition

No inheritance β€” on purpose

In many languages you'd make a PremiumWalker by inheriting from Walker. Go has no inheritance. There are no subclasses, no base classes, no extends.

Instead Go gives you composition: you build bigger types by embedding smaller ones. Rather than "a premium walker IS A walker (plus extras)," you say "a walker-with-stats HAS A walker inside it." It turns out that covers almost everything inheritance was used for, with far fewer sharp edges.