I know this "safe navigation operator" from Groovy. It can get a bit annoying: people tend to use it everywhere instead of ".", "just to be on the safe side". It's only really useful if you have long "train wreck" chains like "A.B.C.D.E.F", where each component can be nil. The better design is to avoid "train wrecks" (Law of Demeter) and excessive use of nil pointers. Initialize pointers before usage, use more value types. Also, strings in Go can't be nil and nil slices are valid empty slices.
Go doesn't even support the ternary "?:" operator, because it hides control flow branches inside a single line, and each "?." is a hidden "if" as well.