Menu
Coddy logo textTech

Длина и емкость среза

Часть раздела Основы путешествия по GO на Coddy — урок 77 из 109.

В Go длина и емкость — это два разных свойства срезов.

Создайте срез с помощью make:

numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers))
fmt.Println("Capacity:", cap(numbers))

Это выведет:

Length: 3
Capacity: 5

Длина — это количество элементов, которые в данный момент находятся в срезе. Емкость — это максимальное количество элементов, которое может содержать срез перед тем, как ему потребуется расширение.

challenge icon

Задание

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

Ваша задача — дополнить код, чтобы вывести как длину, так и емкость данного слайса.

Шпаргалка

В Go срезы имеют два свойства: длина (length) и емкость (capacity).

Длина — это количество элементов, которые в данный момент находятся в срезе. Емкость — это максимальное количество элементов, которое может содержать срез до того, как потребуется его расширение.

Используйте len() для получения длины и cap() для получения емкости:

numbers := make([]int, 3, 5)
fmt.Println("Length:", len(numbers))    // Длина: 3
fmt.Println("Capacity:", cap(numbers))  // Емкость: 5

Попробуйте сами

package main

import "fmt"

func main() {
	// Срез с 3 элементами, но емкостью 5
	numbers := make([]int, 3, 5)
	
	// TODO: Выведите длину среза с помощью len()
	fmt.Println("Length:", ?)
	
	// TODO: Выведите емкость среза с помощью cap()
	fmt.Println("Capacity:", ?)
	
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы