Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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?



This 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.


Yes, you are correct. Doing var return MyStruct {} at the beginning of the function would do exactly the same thing as naming return value.


Yes, you can, but just naming the return variable takes care of this.


Yes it will work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: