structs and functions on them are basically classes. golang lacks subclasses as you point out, otherwise everything is the same.