Функция strings.EqualFold
Функция strings.EqualFold проверяет,
равны ли две строки при сравнении без учета регистра.
Она возвращает true, если строки эквивалентны
без учета регистра, и false в противном случае.
Первый параметр функции - первая строка для сравнения,
второй параметр - вторая строка для сравнения.
Сравнение выполняется с учетом Unicode и работает корректно
с символами разных алфавитов.
Синтаксис
strings.EqualFold(s, t)
Пример
Давайте сравним две строки, которые отличаются только регистром:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.EqualFold("Hello", "hello")
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Проверим строки с разными регистрами и специальными символами:
package main
import (
"fmt"
"strings"
)
func main() {
res1 := strings.EqualFold("GoLang", "golang")
res2 := strings.EqualFold("abc123", "ABC123")
fmt.Println(res1)
fmt.Println(res2)
}
Результат выполнения кода:
true
true
Пример
Функция учитывает Unicode-символы. Сравним строки с кириллицей:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.EqualFold("Привет", "ПРИВЕТ")
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Если строки различаются не только регистром, функция вернет false:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.EqualFold("Hello", "World")
fmt.Println(res)
}
Результат выполнения кода:
false
Смотрите также
-
функцию
strings.Compare,
которая сравнивает строки с учетом регистра -
функцию
strings.ToLower,
которая преобразует строку в нижний регистр -
функцию
strings.ToUpper,
которая преобразует строку в верхний регистр -
функцию
bytes.EqualFold,
которая выполняет аналогичное сравнение для срезов байтов