Given it's 18.04, you could've `snap install go --channel=edge` to get go from master.

(all praise mwhudson for maintaining the Go snaps -- `snap info go` for the whole story).

I've recently revisited asdf, and based on some testing, started moving my various compilers/interpreters to that. It's a "general" version manager - that works like rbenv for "all" languages.

I'm not sure if I'd use it for deployment - but for development it's quite versatile.

https://github.com/asdf-vm/asdf