On Tue, Feb 21, 2017 at 1:46 PM,  <andrew.penneba...@gmail.com> wrote:
> Seems like named returns + if/for/switch initializers = a shadowing
> nightmare. I wish the Go compiler emitted a loud warning on shadowing, as
> this is a dangerously subtle problem out there.

* Ian Lance Taylor [170221 16:13]:
> Yes, named returns may have been a mistake.  Only use them in very
> very short functions.

* John Souvestre <j...@souvestre.com> [170221 21:46]:
> I feel the opposite.  I view named returns as documentation of a
> function's parameters.  I'm constantly amazed by the (correct)
> emphasis placed on using appropriate names for calling parameters, but
> not for the return parameters.  The goal is that I shouldn't have to
> read a function's code to use the function, right?

I agree with the John and the others that named return variables are a
good feature.

The confusion is not because of the named returns, but because the :=
notation used with multiple variables on the left combines declaration
and simple assignment without allowing, much less requiring, the
programmer to explicitly identify which variables are being declared and
which are simply being assigned a new value.  This is relevant when :=
is used at the block scope as well as in if/for/switch initializers.

...Marvin

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to