aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2009-11-10 00:09:53 -0800
committerIan Lance Taylor <iant@golang.org>2009-11-10 00:09:53 -0800
commitcc6720aab7555190d0e19a04fd7b8e69caa17923 (patch)
tree01a9c0dcb7db8c184e95dbf18dae237a7458da40
parent6898f95decf962e9878dc2f07b8ae469570ee617 (diff)
downloadgo-cc6720aab7555190d0e19a04fd7b8e69caa17923.tar.gz
go-cc6720aab7555190d0e19a04fd7b8e69caa17923.zip
Minor tweaks.
The text changes are trivial and may be ignored, but there are two code corrections. R=r, rsc CC=go-dev http://go/go-review/1024045
-rw-r--r--doc/effective_go.html23
1 files changed, 13 insertions, 10 deletions
diff --git a/doc/effective_go.html b/doc/effective_go.html
index 3c4ccecca2..5f1bf31bbf 100644
--- a/doc/effective_go.html
+++ b/doc/effective_go.html
@@ -286,7 +286,7 @@ The package name is only the default name for imports; it need not be unique
across all source code, and in the rare case of a collision the
importing package can choose a different name to use locally.
In any case, confusion is rare because the file name in the import
-defines which version is being used.
+determines just which package is being used.
</p>
<p>
@@ -362,7 +362,7 @@ multiword names.
<p>
Go needs fewer semicolons between statements than do other C variants.
Semicolons are never required at the top level.
-Also they are separators, not terminators, so they
+And they are separators, not terminators, so they
can be left off the last element of a statement or declaration list,
a convenience
for one-line <code>funcs</code> and the like.
@@ -656,8 +656,8 @@ case *int:
<h3 id="multiple-returns">Multiple return values</h3>
<p>
-One of Go's unusual properties is that functions and methods
-can return multiple values. This feature can be used to
+One of Go's unusual features is that functions and methods
+can return multiple values. This can be used to
improve on a couple of clumsy idioms in C programs: in-band
error returns (such as <code>-1</code> for <code>EOF</code>)
and modifying an argument.
@@ -745,7 +745,7 @@ of <code>io.ReadFull</code> that uses them well:
<pre>
func ReadFull(r Reader, buf []byte) (n int, err os.Error) {
- for len(buf) > 0 &amp;&amp; err != nil {
+ for len(buf) > 0 &amp;&amp; err == nil {
var nr int;
nr, err = r.Read(buf);
n += nr;
@@ -1162,7 +1162,7 @@ return a string rather than filling in a provided buffer.
</p>
<p>
You don't need to provide a format string. For each of <code>Printf</code>,
-<code>fmt.Fprintf</code> and <code>fmt.Sprintf</code> there is another pair
+<code>Fprintf</code> and <code>Sprintf</code> there is another pair
of functions, for instance <code>Print</code> and <code>Println</code>.
These functions do not take a format string but instead generate a default
format for each argument. The <code>ln</code> version also inserts a blank
@@ -1175,7 +1175,9 @@ fmt.Fprint(os.Stdout, "Hello ", 23, "\n");
fmt.Println(fmt.Sprint("Hello ", 23));
</pre>
<p>
-Recall that <code>fmt.Fprint</code> and friends take as a first argument any object
+As mentioned in
+the <a href="go_tutorial.html">tutorial</a>, <code>fmt.Fprint</code>
+and friends take as a first argument any object
that implements the <code>io.Writer</code> interface; the variables <code>os.Stdout</code>
and <code>os.Stderr</code> are familiar instances.
</p>
@@ -1428,7 +1430,7 @@ func init() {
<h3 id="pointers_vs_values">Pointers vs. Values</h3>
<p>
-Methods can be defined for any named type except pointers and interfaces;
+Methods can be defined for any named type that is not a pointer or an interface;
the receiver does not have to be a struct.
<p>
In the discussion of slices above, we wrote an <code>Append</code>
@@ -2078,7 +2080,8 @@ Receivers always block until there is data to receive.
If the channel is unbuffered, the sender blocks until the receiver has
received the value.
If the channel has a buffer, the sender blocks only until the
-value has been copied to the buffer.
+value has been copied to the buffer; if the buffer is full, this
+means waiting until some receiver has retrieved a value.
</p>
<p>
A buffered channel can be used like a semaphore, for instance to
@@ -2147,7 +2150,7 @@ Here's a schematic definition of type <code>Request</code>.
type Request struct {
args []int;
f func([]int) int;
- resultChan <-chan int;
+ resultChan chan int;
}
</pre>
<p>