Функция strings.CutSuffix

Функция strings.CutSuffix удаляет указанный суффикс из строки, если он присутствует в конце. Она возвращает исходную строку без суффикса и булево значение true, если суффикс был найден и удален. В противном случае возвращается исходная строка и false. Первый параметр функции — строка, которую нужно обработать, второй — суффикс, который требуется удалить.

Синтаксис

gostrings.CutSuffix(str, suffix)

Пример

Давайте удалим суффикс ".go" из строки "main.go":

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res, found := strings.CutSuffix("main.go", ".go")
  fmt.Printf("%q, %t\n", res, found)
}

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

go"main", true

Пример

Попробуем удалить суффикс ".txt" из строки "image.png". Так как суффикс не совпадает, функция вернет исходную строку и false:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res, found := strings.CutSuffix("image.png", ".txt")
  fmt.Printf("%q, %t\n", res, found)
}

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

go"image.png", false

Пример

Важно, что функция удаляет только точное совпадение в конце строки. Если суффикс встречается в середине, но не в конце, удаления не произойдет:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res, found := strings.CutSuffix("test.txt.backup", ".txt")
  fmt.Printf("%q, %t\n", res, found)
}

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

go"test.txt.backup", false

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

  • функцию strings.CutPrefix,
    которая удаляет префикс из строки
  • функцию strings.HasSuffix,
    которая проверяет наличие суффикса в строке
  • функцию strings.TrimSuffix,
    которая аналогично удаляет суффикс, но без возврата булева значения
  • функцию strings.Cut,
    которая разделяет строку по первому вхождению разделителя