Массивы и срезы
Массивы в Go - последовательность элементов одного типа фиксированной длины
Создание массива
[длина]Тип
[N]Тип{значение1, значение2, ..., значениеN}
[...]Тип { значение1, значение2, ..., значениеN } // ... - вычислить размер массива автоматическиСоздание среза
make([]Тип, длина, емкость)
make([]Тип, длина)
[]Тип{}
[]Тип{значение1, значение2, ...}На практике, всегда лучше создавать пустой срез через первый способ с непустой емкостью, примерно равной количеству ожидаемых элементов:
make([]Тип, 0, 10)Особенности
Массивы передаются по значению (можно, конечно, сделать указатель на массив), а срезы всегда по ссылке. Из массива всегда извлекается срез через операцию [n:m]. Массивы имеют фиксированный размер, а срезы - переменный.
Все функции в стандартной библиотеке Go, образующие общедоступный API, используют срезы, а не массивы.
Операции над срезами
Добавление элементов и срезов
Contains
Встроенной функции для массивов нет
Last updated