github.com/q45/go@v0.0.0-20151101211701-a4fb8c13db3f/src/bytes/example_test.go (about) 1 // Copyright 2011 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package bytes_test 6 7 import ( 8 "bytes" 9 "encoding/base64" 10 "fmt" 11 "io" 12 "os" 13 "sort" 14 ) 15 16 func ExampleBuffer() { 17 var b bytes.Buffer // A Buffer needs no initialization. 18 b.Write([]byte("Hello ")) 19 fmt.Fprintf(&b, "world!") 20 b.WriteTo(os.Stdout) 21 // Output: Hello world! 22 } 23 24 func ExampleBuffer_reader() { 25 // A Buffer can turn a string or a []byte into an io.Reader. 26 buf := bytes.NewBufferString("R29waGVycyBydWxlIQ==") 27 dec := base64.NewDecoder(base64.StdEncoding, buf) 28 io.Copy(os.Stdout, dec) 29 // Output: Gophers rule! 30 } 31 32 func ExampleCompare() { 33 // Interpret Compare's result by comparing it to zero. 34 var a, b []byte 35 if bytes.Compare(a, b) < 0 { 36 // a less b 37 } 38 if bytes.Compare(a, b) <= 0 { 39 // a less or equal b 40 } 41 if bytes.Compare(a, b) > 0 { 42 // a greater b 43 } 44 if bytes.Compare(a, b) >= 0 { 45 // a greater or equal b 46 } 47 48 // Prefer Equal to Compare for equality comparisons. 49 if bytes.Equal(a, b) { 50 // a equal b 51 } 52 if !bytes.Equal(a, b) { 53 // a not equal b 54 } 55 } 56 57 func ExampleCompare_search() { 58 // Binary search to find a matching byte slice. 59 var needle []byte 60 var haystack [][]byte // Assume sorted 61 i := sort.Search(len(haystack), func(i int) bool { 62 // Return haystack[i] >= needle. 63 return bytes.Compare(haystack[i], needle) >= 0 64 }) 65 if i < len(haystack) && bytes.Equal(haystack[i], needle) { 66 // Found it! 67 } 68 } 69 70 func ExampleTrimSuffix() { 71 var b = []byte("Hello, goodbye, etc!") 72 b = bytes.TrimSuffix(b, []byte("goodbye, etc!")) 73 b = bytes.TrimSuffix(b, []byte("gopher")) 74 b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...) 75 os.Stdout.Write(b) 76 // Output: Hello, world! 77 } 78 79 func ExampleTrimPrefix() { 80 var b = []byte("Goodbye,, world!") 81 b = bytes.TrimPrefix(b, []byte("Goodbye,")) 82 b = bytes.TrimPrefix(b, []byte("See ya,")) 83 fmt.Printf("Hello%s", b) 84 // Output: Hello, world! 85 }