| // Copyright 2011 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package bytes_test | |
| import ( | |
| "bytes" | |
| "encoding/base64" | |
| "fmt" | |
| "io" | |
| "os" | |
| "sort" | |
| ) | |
| func ExampleBuffer() { | |
| var b bytes.Buffer // A Buffer needs no initialization. | |
| b.Write([]byte("Hello ")) | |
| fmt.Fprintf(&b, "world!") | |
| b.WriteTo(os.Stdout) | |
| // Output: Hello world! | |
| } | |
| func ExampleBuffer_reader() { | |
| // A Buffer can turn a string or a []byte into an io.Reader. | |
| buf := bytes.NewBufferString("R29waGVycyBydWxlIQ==") | |
| dec := base64.NewDecoder(base64.StdEncoding, buf) | |
| io.Copy(os.Stdout, dec) | |
| // Output: Gophers rule! | |
| } | |
| func ExampleCompare() { | |
| // Interpret Compare's result by comparing it to zero. | |
| var a, b []byte | |
| if bytes.Compare(a, b) < 0 { | |
| // a less b | |
| } | |
| if bytes.Compare(a, b) <= 0 { | |
| // a less or equal b | |
| } | |
| if bytes.Compare(a, b) > 0 { | |
| // a greater b | |
| } | |
| if bytes.Compare(a, b) >= 0 { | |
| // a greater or equal b | |
| } | |
| // Prefer Equal to Compare for equality comparisons. | |
| if bytes.Equal(a, b) { | |
| // a equal b | |
| } | |
| if !bytes.Equal(a, b) { | |
| // a not equal b | |
| } | |
| } | |
| func ExampleCompare_search() { | |
| // Binary search to find a matching byte slice. | |
| var needle []byte | |
| var haystack [][]byte // Assume sorted | |
| i := sort.Search(len(haystack), func(i int) bool { | |
| // Return haystack[i] >= needle. | |
| return bytes.Compare(haystack[i], needle) >= 0 | |
| }) | |
| if i < len(haystack) && bytes.Equal(haystack[i], needle) { | |
| // Found it! | |
| } | |
| } | |
| func ExampleTrimSuffix() { | |
| var b = []byte("Hello, goodbye, etc!") | |
| b = bytes.TrimSuffix(b, []byte("goodbye, etc!")) | |
| b = bytes.TrimSuffix(b, []byte("gopher")) | |
| b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...) | |
| os.Stdout.Write(b) | |
| // Output: Hello, world! | |
| } | |
| func ExampleTrimPrefix() { | |
| var b = []byte("Goodbye,, world!") | |
| b = bytes.TrimPrefix(b, []byte("Goodbye,")) | |
| b = bytes.TrimPrefix(b, []byte("See ya,")) | |
| fmt.Printf("Hello%s", b) | |
| // Output: Hello, world! | |
| } |