Well, why stop there? Why not
if vs := f(); len(vs) == 0 {
} else f2()
if vs := f(); len(vs) == 0 {
} else x = y
There is a simple rule:
if <condition> <block> [else <block>]
In fact, for a while in the very early days of Go, that was the only
rule. But experience showed that people naturally want to write
if/else if/else, and having to add extra braces was frustrating, and
they tended to stack up. So the rule was extended to (roughly):
if <condition> <block> [else if <condition> <block> [else <block>]]
There's no obvious need to extend the rule in any other way. It's not
something that people are running into.
Ian