From cf16443c69ff45db8b9493a92bec0812111b1c78 Mon Sep 17 00:00:00 2001 From: Rob Pike <r@golang.org> Date: Thu, 12 Nov 2009 11:05:20 -0800 Subject: [PATCH] fix a couple of typos. add a mention of range to the tutorial. change tutorial's title. R=rsc CC=golang-dev https://golang.org/cl/152098 --- doc/go_spec.html | 2 +- doc/go_tutorial.html | 22 ++++++++++++++++++++-- doc/go_tutorial.txt | 18 ++++++++++++++++-- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index 203f036a82..bd98c42903 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -3010,7 +3010,7 @@ yields a function value representing <code>Mv</code> with signature </p> <pre> -func (tv *T, f int) int +func (tv *T, a int) int </pre> <p> diff --git a/doc/go_tutorial.html b/doc/go_tutorial.html index 77ceb35419..bbd87bb61c 100644 --- a/doc/go_tutorial.html +++ b/doc/go_tutorial.html @@ -1,4 +1,4 @@ -<!-- Let's Go --> +<!-- A Tutorial for the Go Programming Language --> <h2>Introduction</h2> <p> This document is a tutorial introduction to the basics of the Go programming @@ -340,6 +340,24 @@ The built-in function <code>len()</code>, which returns number of elements, makes its first appearance in <code>sum</code>. It works on strings, arrays, slices, maps, and channels. <p> +By the way, another thing that works on strings, arrays, slices, maps +and channels is the <code>range</code> clause on <code>for</code> loops. Instead of writing +<p> +<pre> + for i := 0; i < len(a); i++ { ... } +</pre> +<p> +to loop over the elements of a slice (or map or ...) , we could write +<p> +<pre> + for i, v := range a { ... } +</pre> +<p> +This assigns <code>i</code> to the index and <code>v</code> to the value of the successive +elements of the target of the range. See +<a href='/doc/effective_go.html'>Effective Go</a> +for more examples of its use. +<p> <p> <h2>An Interlude about Allocation</h2> <p> @@ -511,7 +529,7 @@ exported factory to use is <code>Open</code>: </pre> <p> There are a number of new things in these few lines. First, <code>Open</code> returns -multiple values, an <code>File</code> and an error (more about errors in a moment). +multiple values, a <code>File</code> and an error (more about errors in a moment). We declare the multi-value return as a parenthesized list of declarations; syntactically they look just like a second parameter list. The function diff --git a/doc/go_tutorial.txt b/doc/go_tutorial.txt index 8e2effd33f..8d57dffb6f 100644 --- a/doc/go_tutorial.txt +++ b/doc/go_tutorial.txt @@ -1,4 +1,4 @@ -<!-- Let's Go --> +<!-- A Tutorial for the Go Programming Language --> Introduction ---- @@ -264,6 +264,20 @@ The built-in function "len()", which returns number of elements, makes its first appearance in "sum". It works on strings, arrays, slices, maps, and channels. +By the way, another thing that works on strings, arrays, slices, maps +and channels is the "range" clause on "for" loops. Instead of writing + + for i := 0; i < len(a); i++ { ... } + +to loop over the elements of a slice (or map or ...) , we could write + + for i, v := range a { ... } + +This assigns "i" to the index and "v" to the value of the successive +elements of the target of the range. See +<a href='/doc/effective_go.html'>Effective Go</a> +for more examples of its use. + An Interlude about Allocation ---- @@ -391,7 +405,7 @@ exported factory to use is "Open": --PROG progs/file.go /func.Open/ /^}/ There are a number of new things in these few lines. First, "Open" returns -multiple values, an "File" and an error (more about errors in a moment). +multiple values, a "File" and an error (more about errors in a moment). We declare the multi-value return as a parenthesized list of declarations; syntactically they look just like a second parameter list. The function -- 2.30.9