4 ms·
I'm not the most proficient Go developer, but aren't the two examples doing two different things? In the first way, each branch allocates its own objectInfo st
by 013a 9y ago
I'm not the most proficient Go developer, but aren't the two examples doing two different things?
In the first way, each branch allocates its own objectInfo struct. In the second way, all the branch exits share the same single objectInfo struct which I assume is implicitly initialized to the zero value by the compiler.
Functionally these are the same, but couldn't you achieve the same results without named return values by just allocating a single objectInfo at the top of the function and returning it?
- geekme 9y agoYes it will work.
- fwessels 9y agoYes, you can, but just naming the return variable takes care of this.
- deleted 9y ago[deleted]
- blahedo 9y agoThis was my observation as well, but even more importantly, in the given examples they're naming a value to get this benefit, but then never actually referring to the value by name. This is contorted at best.
- Gonzih 9y agoYes, you are correct. Doing var return MyStruct {} at the beginning of the function would do exactly the same thing as naming return value.