Есть несколько способов создать слайс в Go, каждый подходит для разных ситуаций:
make()Функция make() — это самый частый способ создать слайс с определённой начальной ёмкостью:
s := make([]int, 0) // длина 0, ёмкость 0
s2 := make([]int, 3, 5) // длина 3, ёмкость 5, инициализирован нулями
Когда ты передаёшь два аргумента в make(), первый — это длина (количество элементов), а второй — ёмкость (всё выделенное место). Если ты не указываешь ёмкость, она по умолчанию равна длине.
Ты можешь создать и инициализировать слайс одновременно, используя слайс-литерал:
s3 := []int{} // длина 0, ёмкость 0, пустой слайс
Ты можешь объявить переменную слайса с явным указанием типа:
var s4 []int = []int{} // длина 0, ёмкость 0
make(), когда ты знаешь ожидаемую ёмкость заранее — это самый эффективный способ для кода, критичного по производительностиДлина — это количество элементов, которые сейчас находятся в слайсе, а ёмкость — это размер underlying-массива. Когда ты используешь make([]int, 3, 5), ты создаёшь слайс с 3 доступными элементами и местом для роста до 5 без переаллокации.
Когда ты используешь make([]int, 3, 5), срез имеет 3 доступных элемента и может расти до общей ёмкости 5 без необходимости переаллокации памяти.
Новый — ещё не проверен сообществом
Вы