]> Cypherpunks repositories - gostls13.git/commitdiff
add a paragraph about semicolons to the tutorial.
authorRob Pike <r@golang.org>
Thu, 12 Nov 2009 22:10:16 +0000 (14:10 -0800)
committerRob Pike <r@golang.org>
Thu, 12 Nov 2009 22:10:16 +0000 (14:10 -0800)
fix a typo caught by kakugawa@gmail.com

Fixes #92.

R=rsc
CC=golang-dev
https://golang.org/cl/152105

doc/go_spec.html
doc/go_tutorial.html
doc/go_tutorial.txt
doc/progs/echo.go

index bd98c42903d7a35412f5019084d63c42dde001f5..9abebfbe73f30d09a4032d293308cb5447bd1aac 100644 (file)
@@ -2300,7 +2300,7 @@ var r, ok = a[x]
 
 <p>
 the result of the index expression is a pair of values with types
-<code>(K, bool)</code>.
+<code>(V, bool)</code>.
 If the key is present in the map,
 the expression returns the pair <code>(a[x], true)</code>;
 otherwise it returns <code>(Z, false)</code> where <code>Z</code> is
index bbd87bb61c2b2831a26094ba4dacd3f3157bcfc7..201c503bbe27717ccb3209395badf7e2073c83d3 100644 (file)
@@ -110,7 +110,7 @@ Next up, here's a version of the Unix utility <code>echo(1)</code>:
 23            if i &gt; 0 {
 24                s += Space
 25            }
-26            s += flag.Arg(i)
+26            s += flag.Arg(i);
 27        }
 28        if !*omitNewline {
 29            s += Newline
@@ -135,6 +135,17 @@ Semicolons aren't needed here; in fact, semicolons are unnecessary after any
 top-level declaration, although they are needed as separators <i>within</i>
 a parenthesized list of declarations.
 <p>
+You can use semicolons just the way you would in C, C++, or Java, but if you
+prefer you can also leave them out in many cases.   They <i>separate</i> statements
+rather than terminate them, so they aren't needed (but are still OK) at the end of the last
+statement in a block.
+They're also optional after braces, as in C.
+Have a look at the source to <code>echo</code>.
+The only necessary semicolons in that program are on lines 8, 15, and 21
+and of course between the elements of the <code>for</code> loop on line 22.
+The ones on line 9, 16, 26, and 31 are optional but are there because a semicolon
+on the end of a list of statements makes it easier to edit the list later.
+<p>
 This program imports the <code>&quot;os&quot;</code> package to access its <code>Stdout</code> variable, of type
 <code>*os.File</code>.  The <code>import</code> statement is actually a declaration: in its general form,
 as used in our ``hello world'' program,
index 8d57dffb6fc0af0d3c20908f1b388bfefa92c16a..b8e18dab8d57456d852547f0a0f1a420e4ef8eab 100644 (file)
@@ -94,6 +94,17 @@ Semicolons aren't needed here; in fact, semicolons are unnecessary after any
 top-level declaration, although they are needed as separators <i>within</i>
 a parenthesized list of declarations.
 
+You can use semicolons just the way you would in C, C++, or Java, but if you
+prefer you can also leave them out in many cases.   They <i>separate</i> statements
+rather than terminate them, so they aren't needed (but are still OK) at the end of the last
+statement in a block.
+They're also optional after braces, as in C.
+Have a look at the source to "echo".
+The only necessary semicolons in that program are on lines 8, 15, and 21
+and of course between the elements of the "for" loop on line 22.
+The ones on line 9, 16, 26, and 31 are optional but are there because a semicolon
+on the end of a list of statements makes it easier to edit the list later.
+
 This program imports the "&quot;os&quot;" package to access its "Stdout" variable, of type
 "*os.File".  The "import" statement is actually a declaration: in its general form,
 as used in our ``hello world'' program,
index 26a2f68b5099a6133238936d42d76af1a22d0894..4761c1e9796c73fccd98b16f7c687be188b7fda4 100644 (file)
@@ -23,7 +23,7 @@ func main() {
                if i > 0 {
                        s += Space
                }
-               s += flag.Arg(i)
+               s += flag.Arg(i);
        }
        if !*omitNewline {
                s += Newline