Функция bytes.EqualFold
Функция bytes.EqualFold сравнивает два среза байтов (представляющих строки) на равенство без учета регистра. Она учитывает особенности Unicode и корректно обрабатывает символы разных алфавитов. Первым параметром функция принимает срез байтов a, вторым - срез байтов b. Возвращает true, если строки эквивалентны без учета регистра, и false в противном случае.
Синтаксис
bytes.EqualFold(a, b []byte) bool
Пример
Давайте сравним две строки, отличающиеся регистром:
package main
import (
"bytes"
"fmt"
)
func main() {
str1 := []byte("Hello")
str2 := []byte("hello")
res := bytes.EqualFold(str1, str2)
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Рассмотрим сравнение строк на разных языках:
package main
import (
"bytes"
"fmt"
)
func main() {
str1 := []byte("Привет")
str2 := []byte("привет")
res := bytes.EqualFold(str1, str2)
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Сравним строки, которые не равны без учета регистра:
package main
import (
"bytes"
"fmt"
)
func main() {
str1 := []byte("abcde")
str2 := []byte("xyz")
res := bytes.EqualFold(str1, str2)
fmt.Println(res)
}
Результат выполнения кода:
false
Смотрите также
-
функцию
strings.EqualFold,
которая выполняет аналогичное сравнение для строк -
функцию
bytes.Compare,
которая сравнивает срезы байтов с учетом регистра -
функцию
bytes.HasPrefix,
которая проверяет наличие префикса в срезе байтов -
функцию
bytes.HasSuffix,
которая проверяет наличие суффикса в срезе байтов