Функция cap

Функция cap возвращает емкость (capacity) слайса. Емкость определяет максимальное количество элементов, которое может содержать слайс без выделения новой памяти. В первый и единственный параметр мы передаем слайс, для которого нужно узнать емкость.

Синтаксис

gocap(slice)

Пример

Давайте создадим слайс с длиной 3 и емкостью 5, а затем получим его емкость:

gopackage main

import "fmt"

func main() {
  slice := make([]string, 3, 5)
  res := cap(slice)
  fmt.Println(res)
}

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

go5

Пример

Давайте создадим слайс с использованием литерала и посмотрим на его емкость:

gopackage main

import "fmt"

func main() {
  slice := []string{"a", "b", "c", "d", "e"}
  res := cap(slice)
  fmt.Println(res)
}

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

go5

Пример

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

gopackage main

import "fmt"

func main() {
  slice := []int{}
  res := cap(slice)
  fmt.Println(res)
}

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

go0

Пример с nil-слайсом

Давайте проверим, что возвращает функция cap для nil-слайса:

gopackage main

import "fmt"

func main() {
  var slice []int
  res := cap(slice)
  fmt.Println(res)
}

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

go0

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

  • функцию len,
    которая возвращает текущую длину слайса
  • функцию append,
    которая добавляет элементы в слайс
  • функцию copy,
    которая копирует элементы между слайсами
  • функцию clear,
    которая удаляет все элементы из слайса