you can do
func sum(nums []int) (result int) {
for _, n := range nums {
result += n
}
return
}
and it will work same as if you would do return result
As for omitting return entirely I hated it in every language where I saw it. It just feels wrong to not have return in functions that return stuff