diff options
author | Robert Griesemer <gri@golang.org> | 2010-10-25 16:50:31 -0700 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2010-10-25 16:50:31 -0700 |
commit | 0f3e9003a526e96cd1f04f340254088271deed0c (patch) | |
tree | 9d7ccd26865f174c7348572427754d9185388c5f | |
parent | 5ca6a4e51b141dbfc273ccbc8e642bd75fbeb184 (diff) | |
download | go-0f3e9003a526e96cd1f04f340254088271deed0c.tar.gz |
go spec: append built-in
R=iant, ken2, r, rsc
CC=golang-dev
http://codereview.appspot.com/2627043
-rw-r--r-- | doc/go_spec.html | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/doc/go_spec.html b/doc/go_spec.html index fc47ae825..3aaa2563f 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1492,8 +1492,8 @@ Zero value: nil Functions: - cap close closed cmplx copy imag len make - new panic print println real recover + append cap close closed cmplx copy imag len + make new panic print println real recover </pre> @@ -4527,10 +4527,38 @@ m := make(map[string] int, 100) // map with initial space for 100 elements </pre> -<h3 id="Copying_slices">Copying slices</h3> +<h3 id="Appending_and_copying_slices">Appending to and copying slices</h3> <p> -The built-in function <code>copy</code> copies slice elements from +Two built-in functions assist in common slice operations. +</p> + +<p> +The function <code>append</code> appends zero or more values <code>x</code> +to a slice <code>s</code> and returns the resulting slice. Each value must be +<a href="#Assignability">assignable</a> to the slice's element type. +</p> + +<pre class="grammar"> +append(s []T, x ...T) []T +</pre> + +<p> +If the capacity of <code>s</code> is not large enough to fit the additional +values, <code>append</code> allocates a new, sufficiently large slice that fits +both the existing slice elements and the additional values. Thus, the returned +slice may refer to a different underlying array. +</p> + +<pre> +s0 := []int{0, 0} +s1 := append(s0, 2) // append a single element s1 == []int{0, 0, 2} +s2 := append(s1, 3, 5, 7) // append multiple elements s2 == []int{0, 0, 2, 3, 5, 7} +s3 := append(s2, s0...) // append a slice s3 == []int{0, 0, 2, 3, 5, 7, 0, 0} +</pre> + +<p> +The function <code>copy</code> copies slice elements from a source <code>src</code> to a destination <code>dst</code> and returns the number of elements copied. Source and destination may overlap. Both arguments must have <a href="#Type_identity">identical</a> element type <code>T</code> and must be |