I think the sentence is supposed to read something like this:


"The second declares out (and assigns to it as before) but only assigns
a value to the existing err variable (without declaring it)"




On Fri, Nov 18, 2016, at 03:02 PM, Terry McKenna wrote:

> Hi Guys,

> 

> I am reading "The Go Programming Language": Donovan, Kernighan
> (pg.31):
> 

> "One subtle but important point: a short variable declaration does not
> necessarily declare all the variables on the its left-hand side. If
> some of them were already declared in the same lexical block then then
> the short variable declaration acts like an assignment to those
> variables."
> 

> I get that.

> 

> "In the code below, the first statement declares both in and err. The
> second declares out but only assigns a value to the existing err
> variable:
> 

> in, err := os.Open(infile)

> // ...

> out, err := os.Create(outfile)

> 

> A short variable declaration must declare at least one new
> variable ...."
> 

> My question is, the second declaration (out, err :=
> os.Create(outfile)), is declaring a new var so why is the value from
> "os.Create(outfile)" not assigned to out? I understand that err is
> updated but again, why is no value assigned to the variable out?
> 

> Thanks

> 



> --

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


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