Функция strings.Cut
Функция strings.Cut разделяет исходную строку на две части
по первому вхождению заданного разделителя. Она возвращает три значения:
строку до разделителя, строку после разделителя и булево значение,
указывающее, был ли разделитель найден. В первый параметр мы передаем
исходную строку, во второй параметр - разделитель.
Синтаксис
before, after, found := strings.Cut(str, sep)
Пример
Давайте разделим строку "hello-world" по разделителю "-":
package main
import (
"fmt"
"strings"
)
func main() {
before, after, found := strings.Cut("hello-world", "-")
fmt.Println("before:", before)
fmt.Println("after:", after)
fmt.Println("found:", found)
}
Результат выполнения кода:
"before: hello"
"after: world"
"found: true"
Пример
Если разделитель отсутствует в строке, функция вернет исходную строку
в качестве первой части и пустую строку в качестве второй,
а флаг будет равен false. Проверим это на примере:
package main
import (
"fmt"
"strings"
)
func main() {
before, after, found := strings.Cut("abcde", "xyz")
fmt.Println("before:", before)
fmt.Println("after:", after)
fmt.Println("found:", found)
}
Результат выполнения кода:
"before: abcde"
"after: "
"found: false"
Пример
Рассмотрим случай, когда разделитель находится в начале или в конце строки. Если строка начинается с разделителя, то первая часть будет пустой:
package main
import (
"fmt"
"strings"
)
func main() {
before, after, found := strings.Cut("-hello", "-")
fmt.Println("before:", before)
fmt.Println("after:", after)
fmt.Println("found:", found)
}
Результат выполнения кода:
"before: "
"after: hello"
"found: true"
Смотрите также
-
функцию
strings.CutPrefix,
которая удаляет префикс из строки -
функцию
strings.CutSuffix,
которая удаляет суффикс из строки -
функцию
strings.Split,
которая разбивает строку по разделителю на слайс -
функцию
strings.SplitN,
которая разбивает строку на ограниченное количество частей