Максимальная емкость
Урок 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) позиция не может быть больше позиции емкости.
Задание
ЛегкоВ данном коде мы определяем срез с именем 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
1Введение
Введение