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

Массив и срез в Go

Из массива получают срез на все его элементы. После имени массива пишут [:] без границ: срез охватывает каждую ячейку массива и может делить с ним память при вырезках.

Обратный путь в фиксированный массив: копирование в массив через copy, если длина среза не больше числа ячеек массива. Прямое присваивание массива из среза другого размера не подходит.

Возьмем срез с массива и скопируем в другой массив:

arr := [3]int{10, 20, 30} view := arr[:] view[0] = 99 fmt.Println(arr) other := [3]int{} copy(other[:], view) fmt.Println(other)

Массив arr изменился через view. other получил копию значений на момент copy.

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

box := [2]int{1, 2} peek := box[:]

Измените peek[1] и выведите box.

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

data := []int{7, 8} box := [2]int{}

Скопируйте data в массив через copy с вырезкой массива.

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

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