Example: Fields and FieldsFunc from BYTES Package


Fields splits the slice s around each instance of one or more consecutive white space characters, returning a slice of subslices of s or an empty list if s contains only white space.
FieldsFunc interprets s as a sequence of UTF-8-encoded Unicode code points. It splits the slice s at each run of code points c satisfying f(c) and returns a slice of subslices of s.

Example

package main

import (
	"bytes"
	"fmt"
	"strings"	
)

func main() {
	fmt.Println("############ Fields #####################\n")
	listCountry := []byte(" Australia   Canada Japan Germany   India")
	fmt.Printf("%q",listCountry)
	
	country := bytes.Fields(listCountry)	
	for index,element := range country{
        fmt.Printf("\n%d => %q", index, element)
    }	
	
	fmt.Println("\n############ FieldsFunc #####################\n")
	sentence := []byte("The Go language has built-in facilities, as well as library support, for writing concurrent programs.")
	fmt.Printf("%q",sentence)
	vowelsSpace := "aeiouy "
	chop := bytes.FieldsFunc(sentence, func(r rune) bool {
		return strings.ContainsRune(vowelsSpace, r)
	})
	for index,element := range chop{
        fmt.Printf("\n%d => %q", index, element)
    }	
}

Output

############ Fields #####################

" Australia   Canada Japan Germany   India"
0 => "Australia"
1 => "Canada"
2 => "Japan"
3 => "Germany"
4 => "India"
############ FieldsFunc #####################

"The Go language has built-in facilities, as well as library support, for writing concurrent programs."
0 => "Th"
1 => "G"
2 => "l"
3 => "ng"
4 => "g"
5 => "h"
6 => "s"
7 => "b"
8 => "lt-"
9 => "n"
10 => "f"
11 => "c"
12 => "l"
13 => "t"
14 => "s,"
15 => "s"
16 => "w"
17 => "ll"
18 => "s"
19 => "l"
20 => "br"
21 => "r"
22 => "s"
23 => "pp"
24 => "rt,"
25 => "f"
26 => "r"
27 => "wr"
28 => "t"
29 => "ng"
30 => "c"
31 => "nc"
32 => "rr"
33 => "nt"
34 => "pr"
35 => "gr"
36 => "ms."
Most Helpful This Week