РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
175 of 1593 menu

Функция bytes.Clone

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

Синтаксис

bytes.Clone(b []byte) []byte

Пример

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

package main import ( "bytes" "fmt" ) func main() { original := []byte("abcde") copyBytes := bytes.Clone(original) fmt.Printf("original: %q\n", original) fmt.Printf("copy: %q\n", copyBytes) }

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

"original: \"abcde\"" "copy: \"abcde\""

Пример

Продемонстрируем, что изменения в копии не влияют на исходный срез:

package main import ( "bytes" "fmt" ) func main() { original := []byte("abcde") copyBytes := bytes.Clone(original) copyBytes[0] = 'X' fmt.Printf("original: %q\n", original) fmt.Printf("copy: %q\n", copyBytes) }

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

"original: \"abcde\"" "copy: \"Xbcde\""

Пример

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

package main import ( "bytes" "fmt" ) func main() { var empty []byte clonedEmpty := bytes.Clone(empty) fmt.Printf("original is nil: %v\n", empty == nil) fmt.Printf("cloned is nil: %v\n", clonedEmpty == nil) fmt.Printf("cloned: %q\n", clonedEmpty) }

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

"original is nil: true" "cloned is nil: false" "cloned: \"\""

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

  • функцию bytes.Compare,
    которая сравнивает два среза байтов
  • функцию bytes.Equal,
    которая проверяет равенство двух срезов байтов
  • функцию bytes.Split,
    которая разбивает срез байтов на под-срезы по разделителю
  • функцию bytes.ReplaceAll,
    которая заменяет все вхождения под-среза на другой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить