Actually, not all Go types are nilable. Integers and strings; those things aren’t nilable. Pointers, interfaces, slices, and some other stuff is. I’m new to Go so I don’t remember the rules exactly, but you can look up the exact details I’m sure.
Which is then annoying because if you want an optional integer you now need a pointer, and a heap allocation.
Pointers, referencing, dereferencing; that can get confusing even for skilled engineers.