Calling one function and getting either an empty container or a container full of empty elements is very strange behavior.
I honestly try and read Go news from time to time, with an open mind, but the amount of terrible footguns is astounding, especially when the language is marketed as “simple” and easy for beginner to grasp. I would pick C# or Java over it anytime.
Are you speaking about
clear
? It’s my understanding thatclear
doesn’t get you anything. It modifies the object passed to it, sure, but it doesn’t return different types back to the caller.Edit: I notice this is downvoted- can someone provide feedback if my understanding of
clear
is incorrect? 🤔Yeah, talking about
clear
. And “getting” is meant loosely, in the sense of “the state of the object after calling the function clear”. Regardless of whether the object is modified or a copy returned, that’s just weird behavior. Why notempty
andzero
to empty the container or reset objects in the container to their zero values respectively instead?I see what you’re saying. Hmm. I do think that
clear
will be a nice addition. It does exactly what it says it’ll do, “clear” out the object. In that same vein, I think your suggestions would both be solid alternatives.It sounds like
clear
is already on track to become a part of the language, but maybe you could be the first to put in a suggestion for azero
to accompany it in future releases?
Much needed improvements to make code cleaner and smoother, especially with packages maps and slices