在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: []
推荐阅读
- 如何在C/C++,Python和Java中分割字符串()
- 如何在Golang中对整数进行排序()
- 如何在C++中使用STL对数组进行排序()
- 如何在C/C++中对日期数组进行排序()
- 如何在C++中使用STL按降序对数组排序()
- 如何在C#中对数组排序Array.Sort()|S1
- 如何对链表进行排序,该列表按升序和降序交替排序()
- 如何对很多重复的大数组进行排序()
- 如何解决RSA算法问题()