РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
260 of 1593 menu

Функция slices.Grow

Функция slices.Grow увеличивает емкость слайса до указанного размера. Она принимает два параметра: слайс, который нужно увеличить, и целое число - необходимую емкость. Функция возвращает новый слайс с увеличенной емкостью. Если требуемая емкость меньше или равна текущей, функция возвращает исходный слайс без изменений.

Синтаксис

slices.Grow(slice, size)

Пример

Давайте увеличим емкость слайса до 10 элементов:

package main import ( "fmt" "slices" ) func main() { s := []int{1, 2, 3} fmt.Printf("Length: %d, Capacity: %d\n", len(s), cap(s)) s = slices.Grow(s, 10) fmt.Printf("Length: %d, Capacity: %d\n", len(s), cap(s)) }

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

"Length: 3, Capacity: 3" "Length: 3, Capacity: 10"

Пример

Давайте проверим, что функция не изменяет слайс, если требуемая емкость меньше текущей:

package main import ( "fmt" "slices" ) func main() { s := make([]string, 3, 5) s[0] = "a" s[1] = "b" s[2] = "c" fmt.Printf("Length: %d, Capacity: %d\n", len(s), cap(s)) s = slices.Grow(s, 2) fmt.Printf("Length: %d, Capacity: %d\n", len(s), cap(s)) }

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

"Length: 3, Capacity: 5" "Length: 3, Capacity: 5"

Пример

Давайте используем slices.Grow для подготовки слайса к добавлению большого количества элементов:

package main import ( "fmt" "slices" ) func main() { s := make([]int, 0, 2) fmt.Printf("Initial length: %d, capacity: %d\n", len(s), cap(s)) s = slices.Grow(s, 100) fmt.Printf("After grow length: %d, capacity: %d\n", len(s), cap(s)) for i := 0; i < 50; i++ { s = append(s, i) } fmt.Printf("After append length: %d, capacity: %d\n", len(s), cap(s)) }

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

"Initial length: 0, capacity: 2" "After grow length: 0, capacity: 100" "After append length: 50, capacity: 100"

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

  • функцию len,
    которая возвращает длину слайса
  • функцию cap,
    которая возвращает емкость слайса
  • функцию slices.Clone,
    которая создает копию слайса
  • функцию slices.Clip,
    которая уменьшает емкость слайса до его длины
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить