Функция strings.Clone

Функция strings.Clone создает новую строку, которая является независимой копией исходной строки. В первый параметр мы передаем строку, которую нужно скопировать. Функция возвращает новую строку с тем же содержимым. Это особенно полезно, когда нужно гарантировать, что строка не будет изменена через другие ссылки, или когда необходимо сохранить строку в долгоживущей структуре данных.

Синтаксис

gostrings.Clone(str)

Пример

Давайте создадим копию строки и проверим, что они имеют одинаковое содержимое:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  original := "abcde"
  cloned := strings.Clone(original)

  fmt.Println(original)
  fmt.Println(cloned)
}

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

go"abcde"
"abcde"

Пример

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

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  original := "abcde"
  cloned := strings.Clone(original)

  cloned = strings.Replace(cloned, "b", "x", -1)

  fmt.Println(original)
  fmt.Println(cloned)
}

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

go"abcde"
"axcde"

Пример

Давайте создадим копию пустой строки:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  original := ""
  cloned := strings.Clone(original)

  fmt.Println(original == cloned)
  fmt.Println(cloned)
}

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

go"true"
""

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

  • функцию strings.Compare,
    которая сравнивает две строки и возвращает результат сравнения
  • функцию strings.EqualFold,
    которая проверяет равенство строк без учета регистра
  • функцию strings.Contains,
    которая проверяет наличие подстроки в строке
  • функцию strings.Repeat,
    которая повторяет строку заданное количество раз