Menu
Coddy logo textTech

Максимальная емкость

Урок 8 из 21 курса Срезы и карты в Golang на Coddy.

В прошлом уроке мы говорили о емкости (capacity) и узнали, что при выполнении среза емкость определяется от начальной позиции до конца среза. Однако мы можем использовать оператор или выражение среза, чтобы контролировать или ограничивать емкость. Давайте разберем пример:

Мы знаем, что синтаксис оператора среза выглядит так: <strong>[start:stop]</strong>, но мы можем добавить к этому оператору третий параметр следующим образом: <strong>[start:stop:capacity]</strong>. Третий параметр позволяет нам установить максимальную емкость среза.

Таким образом, используя полное выражение среза, вы можете сделать срез и одновременно ограничить емкость возвращаемого среза из этого выражения.

Предположим, у нас есть такой срез:

numbers := []int{1, 2, 3, 4, 5, 6}

Давайте сделаем срез, чтобы получить 3 элемента:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4]

Мы можем представить это следующим образом:


Итак, здесь мы получаем 3 элемента и емкость 5, как и показано на этом рисунке.

Теперь, если мы используем емкость в операторе среза и установим ее, например, равной 3:

numbers := []int{1, 2, 3, 4, 5, 6}
numSlice := numbers[1:4:4]

Представьте емкость (capacity) так же, как позицию элемента; здесь мы установили ее равной 4. Но обратите внимание, что конечная (stopping) позиция не может быть больше позиции емкости.

challenge icon

Задание

Легко

В данном коде мы определяем срез с именем coddy из 6 элементов.

  • Выполните операцию среза, чтобы извлечь элементы "Tech" и "Learn Golang" из среза coddy, обеспечив при этом, чтобы capacity была равна 4.

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

package main

import (
	"fmt"
)

func main() {
    // Срез из 6 элементов 
	coddy := []string{"Coddy","Tech","Learn Golang","Learn JavaScript","C++","C#"}
	// Выполните срез здесь 
	 
	// Выведите элементы на экран
	fmt.Println("Elements:" ?)
	// Выведите емкость
	fmt.Println("Capacity:" ?)

}

Все уроки раздела Срезы и карты в Golang