个性化阅读
专注于IT技术分析

如何在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 main
  
import (
     "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 main
  
import (
     "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)
}

输出如下:

Final Value:

Slice 1: [****Welcome  to  srcmini****]
Slice 2: [Learning   how   to   trim   a   slice of bytes]
Slice 3: [G e e k s f o r G e e k s , G e e k]
Slice 4: []

赞(0) 打赏
未经允许不得转载:srcmini » 如何在Golang中分割字节切片?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏