Функция strings.EqualFold

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

Синтаксис

gostrings.EqualFold(s, t)

Пример

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

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.EqualFold("Hello", "hello")
  fmt.Println(res)
}

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

gotrue

Пример

Проверим строки с разными регистрами и специальными символами:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res1 := strings.EqualFold("GoLang", "golang")
  res2 := strings.EqualFold("abc123", "ABC123")
  fmt.Println(res1)
  fmt.Println(res2)
}

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

gotrue
true

Пример

Функция учитывает Unicode-символы. Сравним строки с кириллицей:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.EqualFold("Привет", "ПРИВЕТ")
  fmt.Println(res)
}

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

gotrue

Пример

Если строки различаются не только регистром, функция вернет false:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.EqualFold("Hello", "World")
  fmt.Println(res)
}

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

gofalse

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

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