Функция bytes.EqualFold

Функция bytes.EqualFold сравнивает два среза байтов (представляющих строки) на равенство без учета регистра. Она учитывает особенности Unicode и корректно обрабатывает символы разных алфавитов. Первым параметром функция принимает срез байтов a, вторым - срез байтов b. Возвращает true, если строки эквивалентны без учета регистра, и false в противном случае.

Синтаксис

gobytes.EqualFold(a, b []byte) bool

Пример

Давайте сравним две строки, отличающиеся регистром:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  str1 := []byte("Hello")
  str2 := []byte("hello")

  res := bytes.EqualFold(str1, str2)
  fmt.Println(res)
}

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

gotrue

Пример

Рассмотрим сравнение строк на разных языках:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  str1 := []byte("Привет")
  str2 := []byte("привет")

  res := bytes.EqualFold(str1, str2)
  fmt.Println(res)
}

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

gotrue

Пример

Сравним строки, которые не равны без учета регистра:

gopackage main

import (
  "bytes"
  "fmt"
)

func main() {
  str1 := []byte("abcde")
  str2 := []byte("xyz")

  res := bytes.EqualFold(str1, str2)
  fmt.Println(res)
}

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

gofalse

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

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