如何在Golang中分割字节切片()

在Go语言中,切片比数组更强大、更灵活、更方便,是一种轻量级的数据结构。切片是一个可变长度的序列,它存储类似类型的元素,不允许在同一个切片中存储不同类型的元素。
在Go的字节切片中,允许使用split()函数分割给定的切片。这个函数将一个字节切片分割成由给定分隔符分隔的所有子片,并返回一个包含所有这些子片的片。它是在bytes包下定义的,所以你必须导入bytes包到你的程序中来访问Split函数。
语法如下:

func Split(o_slice, sep []byte) [][]byte

这里, o_slice是字节片, 九月是分隔符。如果九月为空, 则它将在每个UTF-8序列之后拆分。让我们借助给定的示例来讨论这个概念:
示例1:
//Go program to illustrate the concept //of splitting a slice of bytes package mainimport ( "bytes" "fmt" )func main() {//Creating and initializing //the slice of bytes //Using shorthand declaration slice_1 := []byte{ '!' , '!' , 'G' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'G' , 'e' , 'e' , 'k' , 's' , '#' , '#' }slice_2 := []byte{ 'A' , 'p' , 'p' , 'l' , 'e' }slice_3 := []byte{ '%' , 'g' , '%' , 'e' , '%' , 'e' , '%' , 'k' , '%' , 's' , '%' }//Displaying slices fmt.Println( "Original Slice:" ) fmt.Printf( "Slice 1: %s" , slice_1) fmt.Printf( "\nSlice 2: %s" , slice_2) fmt.Printf( "\nSlice 3: %s" , slice_3)//Splitting the slice of bytes //Using Split function res1 := bytes.Split(slice_1, []byte( "eek" )) res2 := bytes.Split(slice_2, []byte( "" )) res3 := bytes.Split(slice_3, []byte( "%" ))//Display the results fmt.Printf( "\n\nAfter splitting:" ) fmt.Printf( "\nSlice 1: %s" , res1) fmt.Printf( "\nSlice 2: %s" , res2) fmt.Printf( "\nSlice 3: %s" , res3)}

输出如下:
Original Slice: Slice 1: !!srcmini## Slice 2: Apple Slice 3: %g%e%e%k%s%After splitting: Slice 1: [!!G sforG s##] Slice 2: [A p p l e] Slice 3: [ g e e k s ]

示例2:
//Go program to illustrate the concept //of splitting a slice of bytes package mainimport ( "bytes" "fmt" )func main() {//Creating and Splitting //the slice of bytes //Using Split function res1 := bytes.Split([]byte( "****Welcome, to, srcmini****" ), []byte( ", " ))res2 := bytes.Split([]byte( "Learning x how x to x trim x a x slice of bytes" ), []byte( "x" ))res3 := bytes.Split([]byte( "srcmini, Geek" ), []byte( "" ))res4 := bytes.Split([]byte( "" ), []byte( ", " ))//Display the results fmt.Printf( "Final Value:\n" ) fmt.Printf( "\nSlice 1: %s" , res1) fmt.Printf( "\nSlice 2: %s" , res2) fmt.Printf( "\nSlice 3: %s" , res3) fmt.Printf( "\nSlice 4: %s" , res4) }

【如何在Golang中分割字节切片()】输出如下:
Final Value:Slice 1: [****Welcometosrcmini****] Slice 2: [Learninghowtotrimaslice of bytes] Slice 3: [G e e k s f o r G e e k s , G e e k] Slice 4: []

    推荐阅读