English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основы Go

Условные операторы в Go

Функции и методы в Go

Структуры в Go

Срезы и массивы в Go

Строки (String) в Go

Пункторы в Go

Интерфейсы в Go

Конкурентоспособность в Go

Ошибки (Error) в Go

Другие статьи по Go

Разделение срезов в Go

В Go байт-срезы позволяют вам использоватьSplit()Функция разрезает предоставленный срез. Эта функция разрезает байт-срез на все подсрезы, разделенные заданным разделителем, и возвращает срез, содержащий все эти подсрезы. Она определена в пакете bytes, поэтому вам нужно импортировать пакет bytes в вашем приложении, чтобы получить доступ к функции Split.

Синтаксис:

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

здесь,o_sliceявляется байт-срезом,sepявляется разделителем. ЕслиsepПусто, то оно будет разрываться после каждой UTF-8 последовательности. Давайте рассмотрим этот концепт с помощью данных примеров:

Байт-срез разделение пример:

//分割字节片的方法
package main
import (
    "bytes"
    "fmt"
)
func main() {
    //创建和初始化
    //Байтовый, фрагмент
    //使用简写声明
    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",  "'"
    //显示切片
    fmt.Println("原始切片:")
    fmt.Printf("Slice 1:  %s", slice_1)
    fmt.Printf("\nSlice 2:  %s", slice_2)
    fmt.Printf("\nSlice 3:  %s", slice_3)
    //分割字节片
    //Использование, функции, разделения
    res1 := bytes.Split(slice_1, []byte("eek"))
    res2 := bytes.Split(slice_2, []byte(""))
    res3 := bytes.Split(slice_3, []byte("%"))
    //Отображение, результатов
    fmt.Printf("\n\nПосле, разделения:\n")
    fmt.Printf("\nSlice 1: %s", res1)
    fmt.Printf("\nSlice 2: %s", res2)
    fmt.Printf("\nSlice 3: %s", res3)
}

Вывод:

Оригинальный,切片:
Slice 1: !!GeeksforGeeks##
Slice 2: Apple
Slice 3: %g%e%e%k%s%
После, разделения:
Slice 1: [!!G sforG s##]
Slice 2: [A p p l e]
Slice 3: [g e e k s]

Пример, метода, разделения, байтовых,切片, 2:

//Метод, разделения, байтовых,切片
package main
import (
    "bytes"
    "fmt"
)
func main() {
    //Создание и разделение
    //Байтовый, фрагмент
    //Использование, функции, разделения
    res1 := bytes.Split([]byte("****Welcome, to, w3codebox****"), []byte(","))
    res2 := bytes.Split([]byte("Learning x how x to x trim x a x slice x of x bytes"), []byte("x"))
    res3 := bytes.Split([]byte("w3codebox, Geek"), []byte(""))
    res4 := bytes.Split([]byte(""), []byte(","))
    //Отображение, результатов
    fmt.Printf("Значение, результатов, в, конце:\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)
}

Вывод:

Значение, результатов, в, конце:
Slice 1: [****Добро, пожаловать, в, w3codebox****]
Slice 2: [Учимся, как, обрезать, фрагмент, байт]
Slice 3: [n h o o o, G e e k]
Срез 4: []