mirror of
https://github.com/golang/go
synced 2024-11-22 01:24:42 -07:00
- added heading to operator precedence section so it's easy to find
- fixed broken link to function literals section - minor adjustments R=r DELTA=20 (1 added, 3 deleted, 16 changed) OCL=34792 CL=34794
This commit is contained in:
parent
6a2602de91
commit
d36d191e25
@ -167,7 +167,7 @@ unicode_digit = /* a Unicode code point classified as "Digit" */ .
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
In <i>The Unicode Standard 5.0</i>,
|
||||
In <a href="http://www.unicode.org/versions/Unicode5.1.0/">The Unicode Standard 5.1</a>,
|
||||
Section 4.5 General Category-Normative
|
||||
defines a set of character categories. Go treats
|
||||
those characters in category Lu, Ll, Lt, Lm, or Lo as Unicode letters,
|
||||
@ -218,7 +218,7 @@ An identifier is a sequence of one or more letters and digits.
|
||||
The first character in an identifier must be a letter.
|
||||
</p>
|
||||
<pre class="ebnf">
|
||||
identifier = letter { letter | unicode_digit } .
|
||||
identifier = letter { letter | unicode_digit } .
|
||||
</pre>
|
||||
<pre>
|
||||
a
|
||||
@ -244,7 +244,7 @@ continue for import return var
|
||||
<h3 id="Operators_and_Delimiters">Operators and Delimiters</h3>
|
||||
|
||||
<p>
|
||||
The following character sequences represent operators, delimiters, and other special tokens:
|
||||
The following character sequences represent <a href="#Operators">operators</a>, delimiters, and other special tokens:
|
||||
</p>
|
||||
<pre class="grammar">
|
||||
+ & += &= && == != ( )
|
||||
@ -265,10 +265,10 @@ sets a non-decimal base: <code>0</code> for octal, <code>0x</code> or
|
||||
<code>a-f</code> and <code>A-F</code> represent values 10 through 15.
|
||||
</p>
|
||||
<pre class="ebnf">
|
||||
int_lit = decimal_lit | octal_lit | hex_lit .
|
||||
decimal_lit = ( "1" ... "9" ) { decimal_digit } .
|
||||
octal_lit = "0" { octal_digit } .
|
||||
hex_lit = "0" ( "x" | "X" ) hex_digit { hex_digit } .
|
||||
int_lit = decimal_lit | octal_lit | hex_lit .
|
||||
decimal_lit = ( "1" ... "9" ) { decimal_digit } .
|
||||
octal_lit = "0" { octal_digit } .
|
||||
hex_lit = "0" ( "x" | "X" ) hex_digit { hex_digit } .
|
||||
</pre>
|
||||
|
||||
<pre>
|
||||
@ -289,11 +289,11 @@ integer part or the fractional part may be elided; one of the decimal
|
||||
point or the exponent may be elided.
|
||||
</p>
|
||||
<pre class="ebnf">
|
||||
float_lit = decimals "." [ decimals ] [ exponent ] |
|
||||
decimals exponent |
|
||||
"." decimals [ exponent ] .
|
||||
decimals = decimal_digit { decimal_digit } .
|
||||
exponent = ( "e" | "E" ) [ "+" | "-" ] decimals .
|
||||
float_lit = decimals "." [ decimals ] [ exponent ] |
|
||||
decimals exponent |
|
||||
"." decimals [ exponent ] .
|
||||
decimals = decimal_digit { decimal_digit } .
|
||||
exponent = ( "e" | "E" ) [ "+" | "-" ] decimals .
|
||||
</pre>
|
||||
|
||||
<pre>
|
||||
@ -2527,6 +2527,7 @@ var f = float(1<<s); // illegal: 1 has type float, cannot shift
|
||||
var g = float(1<<33); // legal; 1<<33 is a constant shift operation; g == 1<<33
|
||||
</pre>
|
||||
|
||||
<h3 id="Operator_precedence">Operator precedence</h3>
|
||||
<p>
|
||||
Unary operators have the highest precedence.
|
||||
As the <code>++</code> and <code>--</code> operators form
|
||||
@ -2536,7 +2537,7 @@ As a consequence, statement <code>*p++</code> is the same as <code>(*p)++</code>
|
||||
<p>
|
||||
There are six precedence levels for binary operators.
|
||||
Multiplication operators bind strongest, followed by addition
|
||||
operators, comparison operators, communication operators,
|
||||
operators, comparison operators, <code><-</code> (channel send),
|
||||
<code>&&</code> (logical and), and finally <code>||</code> (logical or):
|
||||
</p>
|
||||
|
||||
@ -2552,10 +2553,7 @@ Precedence Operator
|
||||
|
||||
<p>
|
||||
Binary operators of the same precedence associate from left to right.
|
||||
For instance, <code>x / y / z</code> is the same as <code>(x / y) / z</code>.
|
||||
</p>
|
||||
<p>
|
||||
Examples:
|
||||
For instance, <code>x / y * z</code> is the same as <code>(x / y) * z</code>.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
@ -2564,7 +2562,7 @@ Examples:
|
||||
x <= f()
|
||||
^a >> b
|
||||
f() || g()
|
||||
x == y + 1 && <-chan_ptr > 0
|
||||
x == y+1 && <-chan_ptr > 0
|
||||
</pre>
|
||||
|
||||
|
||||
@ -2963,7 +2961,7 @@ the receiver is provided as the first argument to the call.
|
||||
That is, given <code>f := T.Mv</code>, <code>f</code> is invoked
|
||||
as <code>f(t, 7)</code> not <code>t.f(7)</code>.
|
||||
To construct a function that binds the receiver, use a
|
||||
<a href="Function_literals">closure</a>.
|
||||
<a href="#Function_literals">closure</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
Loading…
Reference in New Issue
Block a user