Проверить, присутствует ли указанный элемент в срезе байтов в Golang

Опубликовано: 20 Февраля, 2022

В языке Go фрагмент более мощный, гибкий, удобный, чем массив, и представляет собой легкую структуру данных. Срез представляет собой последовательность переменной длины, в которой хранятся элементы аналогичного типа, вам не разрешается хранить элементы разных типов в одном срезе. В срезе байтов Go вы можете проверить, содержит ли данный срез указанный элемент или нет, используя следующие функции. Эти функции определены в пакете байтов, поэтому вам необходимо импортировать пакет байтов в свою программу для доступа к этим функциям.

1. Содержит: эта функция используется для проверки, присутствует ли указанный элемент в заданном срезе байтов. Этот метод возвращает true, если элемент присутствует в срезе, или возвращает false, если элемент отсутствует в данном срезе.

Синтаксис:

 func Содержит (slice_1, sub_slice [] byte) bool

Example:

// Go program to illustrate how to check the
// slice contains the specified element in it
package main
  
import (
    "bytes"
    "fmt"
)
  
func main() {
  
    // Creating and initializing
    // slice of bytes
    // Using shorthand declaration
    slice_1 := []byte{"A", "N", "M",
                      "O", "P", "Q"}
  
    // Checking the slice
    // using Contains function
    res1 := bytes.Contains(slice_1, []byte{"A"})
    res2 := bytes.Contains(slice_1, []byte{"x"})
    res3 := bytes.Contains([]byte("GeeksforGeeks"), []byte("ks"))
    res4 := bytes.Contains([]byte("Geeks"), []byte(""))
    res5 := bytes.Contains([]byte(""), []byte(""))
  
    // Displaying results
    fmt.Println("Result 1:", res1)
    fmt.Println("Result 2:", res2)
    fmt.Println("Result 3:", res3)
    fmt.Println("Result 4:", res4)
    fmt.Println("Result 5:", res5)
  
}

Выход:

Result 1: true
Result 2: false
Result 3: true
Result 4: true
Result 5: true

2. ContainsAny: эта функция используется для проверки, присутствует ли какая-либо из кодированных точек в кодировке UTF-8 в символах или нет в данном срезе байтов. Этот метод возвращает истину, если любая из кодовых точек в кодировке UTF-8 в символах присутствует в срезе, или возвращает ложь, если какая-либо из кодовых точек в кодировке UTF-8 в символах отсутствует в данном срезе.

Синтаксис:

 func ContainsAny (slice_1 [] байт, строка charstr) bool

Example:

// Go program to illustrate how to check the
// slice contain the specified string in it
package main
  
import (
    "bytes"
    "fmt"
)
  
func main() {
  
    // Creating and initializing
    // slice of bytes
    // Using shorthand declaration
  
    slice_1 := []byte{"A", "N", "M", "O", "P", "Q"}
  
    // Checking the slice
    // Using ContainsAny function
    res1 := bytes.ContainsAny(slice_1, "A")
    res2 := bytes.ContainsAny(slice_1, "a")
    res3 := bytes.ContainsAny([]byte("GeeksforGeeks"), "ksjkd")
    res4 := bytes.ContainsAny([]byte("Geeks"), "")
    res5 := bytes.ContainsAny([]byte(""), "")
  
    // Displaying results
    fmt.Println("Result 1:", res1)
    fmt.Println("Result 2:", res2)
    fmt.Println("Result 3:", res3)
    fmt.Println("Result 4:", res4)
    fmt.Println("Result 5:", res5)
  
}

Выход:

Результат 1: верно
Результат 2: ложь
Результат 3: верно
Результат 4: ложь
Результат 5: ложь