Функция cap
Функция cap возвращает емкость (capacity) слайса. Емкость определяет максимальное количество элементов, которое может содержать слайс без выделения новой памяти. В первый и единственный параметр мы передаем слайс, для которого нужно узнать емкость.
Синтаксис
cap(slice)
Пример
Давайте создадим слайс с длиной 3 и емкостью 5, а затем получим его емкость:
package main
import "fmt"
func main() {
slice := make([]string, 3, 5)
res := cap(slice)
fmt.Println(res)
}
Результат выполнения кода:
5
Пример
Давайте создадим слайс с использованием литерала и посмотрим на его емкость:
package main
import "fmt"
func main() {
slice := []string{"a", "b", "c", "d", "e"}
res := cap(slice)
fmt.Println(res)
}
Результат выполнения кода:
5
Пример
Давайте создадим пустой слайс и проверим его емкость:
package main
import "fmt"
func main() {
slice := []int{}
res := cap(slice)
fmt.Println(res)
}
Результат выполнения кода:
0
Пример с nil-слайсом
Давайте проверим, что возвращает функция cap для nil-слайса:
package main
import "fmt"
func main() {
var slice []int
res := cap(slice)
fmt.Println(res)
}
Результат выполнения кода:
0