Длина и емкость среза
Часть раздела Основы путешествия по 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Длина — это количество элементов, которые в данный момент находятся в срезе. Емкость — это максимальное количество элементов, которое может содержать срез перед тем, как ему потребуется расширение.
Задание
Новичок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:", ?)
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравнения — Часть 1Операторы сравнения — Часть 2Логический оператор ANDЛогический оператор ORЛогический оператор NOTОсновы приоритета операторовИтоги: выполнение сравнений7Управляющие конструкции: Циклы
Что такое цикл `for`Цикл `for` — основыЦикл `for` — только условиеКлючевое слово `break`Ключевое слово `continue`Вложенные циклыИтоги — повторение действий2Переменные и базовые типы данных
Что такое переменнаяВывод типов с помощью `:=`Целые числа (int)Числа с плавающей точкойЛогический тип (Booleans)СтрокиНулевые значения (Zero Values)КонстантыПравила именованияИтоги: переменные и типы5Основы ввода-вывода
Форматированный выводСпецификаторы форматаВывод типовБазовый ввод данных пользователемИтоги: ввод и вывод8Функции
Понимание функцийОбъявление функцииВызов функцийПараметры функцииВозврат одного значенияВозврат нескольких значенийИменованные возвращаемые значенияОсновы области видимости функцийИтоги — создание переиспользуемого кода3Базовые операторы
Арифметические операторыОператор деленияОператор остатка от деленияОператор присваиванияКомбинированные операторы присваиванияИнкремент и декрементПовторение — Вычисления6Управление потоком: Условные конструкции
Оператор `if`Ключевое слово `else`Ключевое слово `else if`Затенение переменных в `if`Инициализация переменныхОператор `switch`Switch с выражениямиSwitch без выраженийКлючевое слово `fallthrough`Итоги — Принятие решений