Функция bytes.Equal

Функция bytes.Equal сравнивает два слайса байтов и возвращает true, если они равны, и false в противном случае. В первый параметр мы передаем первый слайс байтов для сравнения, во второй параметр мы передаем второй слайс байтов для сравнения.

Функция учитывает длину слайсов и значения каждого байта. Если слайсы имеют разную длину, функция вернет false. Если длины совпадают, функция поэлементно сравнивает байты.

Синтаксис

gobytes.Equal(a, b)

Пример

Давайте сравним два одинаковых слайса байтов []byte{"a", "b", "c"} и []byte{"a", "b", "c"}:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  a := []byte{"a", "b", "c"}
  b := []byte{"a", "b", "c"}
  res := bytes.Equal(a, b)
  fmt.Println(res)
}

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

gotrue

Пример

Давайте сравним два разных слайса байтов []byte{"a", "b", "c"} и []byte{"a", "b", "d"}:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  a := []byte{"a", "b", "c"}
  b := []byte{"a", "b", "d"}
  res := bytes.Equal(a, b)
  fmt.Println(res)
}

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

gofalse

Пример

Давайте сравним слайсы байтов разной длины []byte{"a", "b", "c"} и []byte{"a", "b"}:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  a := []byte{"a", "b", "c"}
  b := []byte{"a", "b"}
  res := bytes.Equal(a, b)
  fmt.Println(res)
}

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

gofalse

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

  • функцию bytes.EqualFold,
    которая сравнивает слайсы байтов без учета регистра
  • функцию bytes.Compare,
    которая сравнивает слайсы байтов и возвращает целое число
  • функцию strings.EqualFold,
    которая сравнивает строки без учета регистра
  • функцию bytes.HasPrefix,
    которая проверяет наличие префикса в слайсе байтов