From: Rob Pike Date: Mon, 20 Apr 2009 03:04:15 +0000 (-0700) Subject: spec change for redeclaration X-Git-Tag: weekly.2009-11-06~1800 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=2a1683a007e6371e605a1cfb5122a994f418138b;p=gostls13.git spec change for redeclaration R=iant,gri DELTA=14 (14 added, 0 deleted, 0 changed) OCL=27615 CL=27618 --- diff --git a/doc/go_spec.html b/doc/go_spec.html index c62a168b1f..486813878b 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1674,6 +1674,20 @@ variables will be assigned the corresponding values. r, w := os.Pipe(fd); // os.Pipe() returns two values +

+A short variable declaration may redeclare variables provided they +were originally declared in the same block with the same type, and at +least one of the variables is new. As a consequence, redeclaration +can only appear in a multi-variable short declaration. +Redeclaration does not introduce a new +variable; it just assigns a new value to the original. +

+ +
+field1, offset := nextField(str, 0);
+field2, offset := nextField(str, offset);  // redeclares offset
+
+

Short variable declarations may appear only inside functions. In some contexts such as the initializers for if,