Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmSlCo 162 of 350 menu
◀ ▶

Копирование среза в Go

Копирование переносит элементы в другой срез, не связывая их общим куском. Встроенная команда copy принимает приемник и источник, возвращает, сколько ячеек записано. После копии смена в одном срезе не трогает другой.

Скопируем три числа и изменим источник:

src := []int{10, 20, 30} dst := make([]int, 3) copy(dst, src) src[0] = 99 fmt.Println(dst) fmt.Println(src)

dst останется 10, 20, 30, а src начнется с 99. Общего массива между ними нет.

Даны переменные:

src := []int{1, 2} dup := make([]int, 2)

Скопируйте src в dup, измените первый элемент src и выведите оба среза.

Создайте приемник короче источника и скажите, сколько элементов перенесет copy.

Скажите, делят ли независимые срезы после копирования одну память.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить