func AppendByte(slice []byte, data ...byte) []byte {
m := len(slice)
n := m + len(data)
if n > cap(slice) { // if necessary, reallocate
// allocate double what's needed, for future growth.
newSlice := make([]byte, (n+1)*2)
copy(newSlice, slice)
slice = newSlice
}
slice = slice[0:n]
copy(slice[m:n], data)
return slice
}
a := make([]int, 1)
// a == []int{0}
a = append(a, 1, 2, 3)
// a == []int{0, 1, 2, 3}
func copy(dst, src []T) int
// Filter returns a new slice holding only
// the elements of s that satisfy fn()
func Filter(s []int, fn func(int) bool) []int {
var p []int // == nil
for _, v := range s {
if fn(v) {
p = append(p, v)
}
}
return p
}
func append(s []T, x ...T) []T
a := []string{"John", "Paul"}
b := []string{"George", "Ringo", "Pete"}
a = append(a, b...) // equivalent to "append(a, b[0], b[1], b[2])"
// a == []string{"John", "Paul", "George", "Ringo", "Pete"}
t := make([]byte, len(s), (cap(s)+1)*2)
copy(t, s)
s = t
t := make([]byte, len(s), (cap(s)+1)*2) // +1 in case cap(s) == 0
for i := range s {
t[i] = s[i]
}
s = t
p := []byte{2, 3, 5}
p = AppendByte(p, 7, 11, 13)
// p == []byte{2, 3, 5, 7, 11, 13}
Recommend
Go Slices: usage and internals Growing slices (the copy and append functions)
Go Slices: usage and internals Slice internals
Go Slices: usage and internals Slices
Go Slices: usage and internals Arrays
Go Codewalk: Generating arbitrary text: a Markov chain algorithm
Weekly Snapshot History 2012-03-22 (Go 1 Release Candidate 2)
Weekly Snapshot History 2012-03-27 (Go 1)
Pre-Go 1 Release History r57 (released 2011/05/03) Language
Pre-Go 1 Release History r59 (released 2011/08/01) Packages
Go Canceling in-progress operations Canceling database operations after a timeout
Go Executing SQL statements that don't return data
Go Executing transactions Example
Go Querying for data Handling multiple result sets
Go Querying for data Handling nullable column values
Go Querying for data Querying for multiple rows
Go Querying for data Querying for a single row
Go Avoiding SQL injection risk
Go Using prepared statements How you use prepared statements
Go Opening a database handle Freeing resources
Go Opening a database handle Storing database credentials
Go Opening a database handle Confirming a connection
Go Opening a database handle Opening a database handle Opening with a Connector
Go Opening a database handle Opening a database handle Opening with a connection string
Go Opening a database handle Locating and importing a database driver
Go Call your code from another module
Go Compile and install the application
Go Return greetings for multiple people
Tutorial: Get started with Go Call code in an external package
Tutorial: Get started with Go Write some code
Go Tutorial: Getting started with fuzzing Completed code
Go Tutorial: Getting started with fuzzing Fix the double reverse error Fix the error Run the code
Go Tutorial: Getting started with fuzzing Fix the double reverse error Fix the error Write the code
Go Tutorial: Getting started with fuzzing Fix the invalid string error Fix the error Run the code
Go Tutorial: Getting started with fuzzing Fix the invalid string error Fix the error Write the code
Go Tutorial: Getting started with fuzzing Fix the invalid string error Diagnose the error