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.
17 func ExampleBuffer() {
18 var b bytes
.Buffer
// A Buffer needs no initialization.
19 b
.Write([]byte("Hello "))
20 fmt
.Fprintf(&b
, "world!")
22 // Output: Hello world!
25 func ExampleBuffer_reader() {
26 // A Buffer can turn a string or a []byte into an io.Reader.
27 buf
:= bytes
.NewBufferString("R29waGVycyBydWxlIQ==")
28 dec
:= base64
.NewDecoder(base64
.StdEncoding
, buf
)
29 io
.Copy(os
.Stdout
, dec
)
30 // Output: Gophers rule!
33 func ExampleBuffer_Grow() {
37 b
.Write([]byte("64 bytes or fewer"))
38 fmt
.Printf("%q", bb
[:b
.Len()])
39 // Output: "64 bytes or fewer"
42 func ExampleCompare() {
43 // Interpret Compare's result by comparing it to zero.
45 if bytes
.Compare(a
, b
) < 0 {
48 if bytes
.Compare(a
, b
) <= 0 {
51 if bytes
.Compare(a
, b
) > 0 {
54 if bytes
.Compare(a
, b
) >= 0 {
55 // a greater or equal b
58 // Prefer Equal to Compare for equality comparisons.
59 if bytes
.Equal(a
, b
) {
62 if !bytes
.Equal(a
, b
) {
67 func ExampleCompare_search() {
68 // Binary search to find a matching byte slice.
70 var haystack
[][]byte // Assume sorted
71 i
:= sort
.Search(len(haystack
), func(i
int) bool {
72 // Return haystack[i] >= needle.
73 return bytes
.Compare(haystack
[i
], needle
) >= 0
75 if i
< len(haystack
) && bytes
.Equal(haystack
[i
], needle
) {
80 func ExampleTrimSuffix() {
81 var b
= []byte("Hello, goodbye, etc!")
82 b
= bytes
.TrimSuffix(b
, []byte("goodbye, etc!"))
83 b
= bytes
.TrimSuffix(b
, []byte("gopher"))
84 b
= append(b
, bytes
.TrimSuffix([]byte("world!"), []byte("x!"))...)
86 // Output: Hello, world!
89 func ExampleTrimPrefix() {
90 var b
= []byte("Goodbye,, world!")
91 b
= bytes
.TrimPrefix(b
, []byte("Goodbye,"))
92 b
= bytes
.TrimPrefix(b
, []byte("See ya,"))
93 fmt
.Printf("Hello%s", b
)
94 // Output: Hello, world!
97 func ExampleFields() {
98 fmt
.Printf("Fields are: %q", bytes
.Fields([]byte(" foo bar baz ")))
99 // Output: Fields are: ["foo" "bar" "baz"]
102 func ExampleFieldsFunc() {
103 f
:= func(c rune
) bool {
104 return !unicode
.IsLetter(c
) && !unicode
.IsNumber(c
)
106 fmt
.Printf("Fields are: %q", bytes
.FieldsFunc([]byte(" foo1;bar2,baz3..."), f
))
107 // Output: Fields are: ["foo1" "bar2" "baz3"]
110 func ExampleContains() {
111 fmt
.Println(bytes
.Contains([]byte("seafood"), []byte("foo")))
112 fmt
.Println(bytes
.Contains([]byte("seafood"), []byte("bar")))
113 fmt
.Println(bytes
.Contains([]byte("seafood"), []byte("")))
114 fmt
.Println(bytes
.Contains([]byte(""), []byte("")))
122 func ExampleCount() {
123 fmt
.Println(bytes
.Count([]byte("cheese"), []byte("e")))
124 fmt
.Println(bytes
.Count([]byte("five"), []byte(""))) // before & after each rune
130 func ExampleEqualFold() {
131 fmt
.Println(bytes
.EqualFold([]byte("Go"), []byte("go")))
135 func ExampleHasPrefix() {
136 fmt
.Println(bytes
.HasPrefix([]byte("Gopher"), []byte("Go")))
137 fmt
.Println(bytes
.HasPrefix([]byte("Gopher"), []byte("C")))
138 fmt
.Println(bytes
.HasPrefix([]byte("Gopher"), []byte("")))
145 func ExampleHasSuffix() {
146 fmt
.Println(bytes
.HasSuffix([]byte("Amigo"), []byte("go")))
147 fmt
.Println(bytes
.HasSuffix([]byte("Amigo"), []byte("O")))
148 fmt
.Println(bytes
.HasSuffix([]byte("Amigo"), []byte("Ami")))
149 fmt
.Println(bytes
.HasSuffix([]byte("Amigo"), []byte("")))
157 func ExampleIndex() {
158 fmt
.Println(bytes
.Index([]byte("chicken"), []byte("ken")))
159 fmt
.Println(bytes
.Index([]byte("chicken"), []byte("dmr")))
165 func ExampleIndexFunc() {
166 f
:= func(c rune
) bool {
167 return unicode
.Is(unicode
.Han
, c
)
169 fmt
.Println(bytes
.IndexFunc([]byte("Hello, 世界"), f
))
170 fmt
.Println(bytes
.IndexFunc([]byte("Hello, world"), f
))
176 func ExampleIndexAny() {
177 fmt
.Println(bytes
.IndexAny([]byte("chicken"), "aeiouy"))
178 fmt
.Println(bytes
.IndexAny([]byte("crwth"), "aeiouy"))
184 func ExampleIndexRune() {
185 fmt
.Println(bytes
.IndexRune([]byte("chicken"), 'k'))
186 fmt
.Println(bytes
.IndexRune([]byte("chicken"), 'd'))
192 func ExampleLastIndex() {
193 fmt
.Println(bytes
.Index([]byte("go gopher"), []byte("go")))
194 fmt
.Println(bytes
.LastIndex([]byte("go gopher"), []byte("go")))
195 fmt
.Println(bytes
.LastIndex([]byte("go gopher"), []byte("rodent")))
203 s
:= [][]byte{[]byte("foo"), []byte("bar"), []byte("baz")}
204 fmt
.Printf("%s", bytes
.Join(s
, []byte(", ")))
205 // Output: foo, bar, baz
208 func ExampleRepeat() {
209 fmt
.Printf("ba%s", bytes
.Repeat([]byte("na"), 2))
213 func ExampleReplace() {
214 fmt
.Printf("%s\n", bytes
.Replace([]byte("oink oink oink"), []byte("k"), []byte("ky"), 2))
215 fmt
.Printf("%s\n", bytes
.Replace([]byte("oink oink oink"), []byte("oink"), []byte("moo"), -1))
221 func ExampleSplit() {
222 fmt
.Printf("%q\n", bytes
.Split([]byte("a,b,c"), []byte(",")))
223 fmt
.Printf("%q\n", bytes
.Split([]byte("a man a plan a canal panama"), []byte("a ")))
224 fmt
.Printf("%q\n", bytes
.Split([]byte(" xyz "), []byte("")))
225 fmt
.Printf("%q\n", bytes
.Split([]byte(""), []byte("Bernardo O'Higgins")))
228 // ["" "man " "plan " "canal panama"]
229 // [" " "x" "y" "z" " "]
233 func ExampleSplitN() {
234 fmt
.Printf("%q\n", bytes
.SplitN([]byte("a,b,c"), []byte(","), 2))
235 z
:= bytes
.SplitN([]byte("a,b,c"), []byte(","), 0)
236 fmt
.Printf("%q (nil = %v)\n", z
, z
== nil)
242 func ExampleSplitAfter() {
243 fmt
.Printf("%q\n", bytes
.SplitAfter([]byte("a,b,c"), []byte(",")))
244 // Output: ["a," "b," "c"]
247 func ExampleSplitAfterN() {
248 fmt
.Printf("%q\n", bytes
.SplitAfterN([]byte("a,b,c"), []byte(","), 2))
249 // Output: ["a," "b,c"]
252 func ExampleTitle() {
253 fmt
.Printf("%s", bytes
.Title([]byte("her royal highness")))
254 // Output: Her Royal Highness
257 func ExampleToTitle() {
258 fmt
.Printf("%s\n", bytes
.ToTitle([]byte("loud noises")))
259 fmt
.Printf("%s\n", bytes
.ToTitle([]byte("хлеб")))
266 fmt
.Printf("[%q]", bytes
.Trim([]byte(" !!! Achtung! Achtung! !!! "), "! "))
267 // Output: ["Achtung! Achtung"]
271 rot13
:= func(r rune
) rune
{
273 case r
>= 'A' && r
<= 'Z':
274 return 'A' + (r
-'A'+13)%26
275 case r
>= 'a' && r
<= 'z':
276 return 'a' + (r
-'a'+13)%26
280 fmt
.Printf("%s", bytes
.Map(rot13
, []byte("'Twas brillig and the slithy gopher...")))
281 // Output: 'Gjnf oevyyvt naq gur fyvgul tbcure...
284 func ExampleTrimSpace() {
285 fmt
.Printf("%s", bytes
.TrimSpace([]byte(" \t\n a lone gopher \n\t\r\n")))
286 // Output: a lone gopher
289 func ExampleToUpper() {
290 fmt
.Printf("%s", bytes
.ToUpper([]byte("Gopher")))
294 func ExampleToLower() {
295 fmt
.Printf("%s", bytes
.ToLower([]byte("Gopher")))