Функция slices.Clip
Функция slices.Clip уменьшает емкость слайса до его текущей длины.
Это полезно, когда слайс был создан с большим запасом по емкости,
но после операций, таких как добавление или удаление элементов,
значительная часть зарезервированной памяти остается неиспользуемой.
Функция возвращает новый слайс, указывающий на ту же базовую структуру данных,
но с обрезанной емкостью. Первым и единственным параметром функция принимает
слайс любого типа.
Синтаксис
slices.Clip(s)
Пример
Давайте создадим слайс с изначальной емкостью 10, а затем обрежем его до длины 5:
package main
import (
"fmt"
"slices"
)
func main() {
s := make([]int, 5, 10)
for i := range s {
s[i] = i + 1
}
fmt.Printf("len: %d, cap: %d\n", len(s), cap(s))
s = slices.Clip(s)
fmt.Printf("len: %d, cap: %d\n", len(s), cap(s))
fmt.Println(s)
}
Результат выполнения кода:
len: 5, cap: 10
len: 5, cap: 5
[1 2 3 4 5]
Пример
Давайте рассмотрим ситуацию, когда емкость и длина слайса уже равны:
package main
import (
"fmt"
"slices"
)
func main() {
s := []string{"a", "b", "c", "d", "e"}
fmt.Printf("len: %d, cap: %d\n", len(s), cap(s))
s = slices.Clip(s)
fmt.Printf("len: %d, cap: %d\n", len(s), cap(s))
fmt.Println(s)
}
Результат выполнения кода:
len: 5, cap: 5
len: 5, cap: 5
[a b c d e]
Смотрите также
-
функцию
len,
которая возвращает длину слайса -
функцию
cap,
которая возвращает емкость слайса -
функцию
slices.Clone,
которая создает копию слайса -
функцию
clear,
которая очищает слайс, устанавливая нулевые значения