Nillability is the biggest thing that drives me to write 'unidiomatic go': there are a few Optional libs around, they work ok.
I write with the following rule: if a pointer is passed, it shouldn't be nil. If it might be nil, code it as an Optional<> instead.
Un-golike but works great.