Функция bytes.HasPrefix

Функция bytes.HasPrefix проверяет, начинается ли срез байтов ([]byte) с указанного префикса. Она возвращает true, если срез начинается с переданного префикса, и false в противном случае. Первым параметром функция принимает исходный срез байтов, вторым — префикс, который нужно проверить. Важно: функция чувствительна к регистру байтов.

Синтаксис

gobytes.HasPrefix(s, prefix)

Пример

Давайте проверим, начинается ли срез байтов []byte("abcde") с префикса []byte("abc"):

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  prefix := []byte("abc")
  res := bytes.HasPrefix(s, prefix)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Давайте проверим, начинается ли срез байтов []byte("abcde") с префикса []byte("bcd"):

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  prefix := []byte("bcd")
  res := bytes.HasPrefix(s, prefix)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Функция чувствительна к регистру. Проверим, начинается ли срез байтов []byte("Hello") с префикса []byte("hello"):

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("Hello")
  prefix := []byte("hello")
  res := bytes.HasPrefix(s, prefix)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Если префикс — пустой срез байтов, функция всегда возвращает true:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  s := []byte("abcde")
  prefix := []byte{}
  res := bytes.HasPrefix(s, prefix)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Смотрите также

  • функцию bytes.HasSuffix,
    которая проверяет наличие суффикса в срезе байтов
  • функцию bytes.Contains,
    которая проверяет наличие подстроки в срезе байтов
  • функцию strings.HasPrefix,
    которая выполняет аналогичную проверку для строк
  • функцию bytes.Index,
    которая возвращает позицию первого вхождения подстроки в срезе байтов