そんなものは無い。設計を見直そう。
There is no ternary form in Go.
Frequently Asked Questions (FAQ) - The Go Programming Language
それでも、クライアントがAPIレスポンスに、ゼロ値じゃなくてnullが欲しい、と要求してくるケースがある。この場合はinterface{}でいいのだから、無名関数呼び出しで適当にこういう処理すればいいんじゃないか。
response := map[stirng]interface{}{ "expire": func() interface{} { // because client requires "expire" field as "null" if user.Expire.IsZero() { return nil } return user.Expire }(), }
ということでつくった。8行。
DRY