1
0
mirror of https://github.com/golang/go synced 2024-11-25 02:07:58 -07:00

tweak grammar and associated prose to permit things like x.y in range clauses.

R=rsc
DELTA=5  (3 added, 0 deleted, 2 changed)
OCL=27536
CL=27540
This commit is contained in:
Rob Pike 2009-04-15 20:51:17 -07:00
parent 7aee71bd4f
commit b340879ce3

View File

@ -3452,7 +3452,7 @@ of iteration variables - and then executes the block.
</p> </p>
<pre class="grammar"> <pre class="grammar">
RangeClause = IdentifierList ( "=" | ":=" ) "range" Expression . RangeClause = ExpressionList ( "=" | ":=" ) "range" Expression .
</pre> </pre>
<p> <p>
@ -3460,7 +3460,10 @@ The type of the right-hand expression in the "range" clause must be an
array, slice, string or map, or a pointer to an array, slice, string or map; array, slice, string or map, or a pointer to an array, slice, string or map;
or it may be a channel. or it may be a channel.
Except for channels, Except for channels,
the identifier list must contain one or two identifiers denoting the the identifier list must contain one or two expressions
(as in assignments, these must be a
variable, pointer indirection, field selector, or index expression)
denoting the
iteration variables. On each iteration, iteration variables. On each iteration,
the first variable is set to the string, array or slice index or the first variable is set to the string, array or slice index or
map key, and the second variable, if present, is set to the corresponding map key, and the second variable, if present, is set to the corresponding