Menu
CoddyTech

Срезы массивов

Часть раздела Основы путешествия по GDScript на Coddy. Урок 73 из 92.

Метод slice() возвращает новый массив с частью элементов. slice(begin, end) берет элементы с индекса begin до индекса end, не включая его:

var numbers := [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers.slice(2, 6))
[2, 3, 4, 5]

Если не указать end, срез продолжается до конца массива:

print(numbers.slice(5))
[5, 6, 7, 8, 9]

Отрицательные индексы отсчитываются с конца. slice(-3) возвращает последние три элемента, а slice(0, -2) — всё, кроме двух последних:

print(numbers.slice(-3))
print(numbers.slice(0, -2))
[7, 8, 9]
[0, 1, 2, 3, 4, 5, 6, 7]

Третий аргумент, шаг, позволяет брать каждый n-й элемент. slice(1, 8, 2) берёт элементы с индексами 1, 3, 5 и 7:

print(numbers.slice(1, 8, 2))
[1, 3, 5, 7]

slice() не изменяет исходный массив: в numbers по-прежнему хранятся все десять элементов.

challenge icon

Задание

Легко

Программа считывает строку элементов, разделённых запятыми, в массив items (он уже создан). Выведите среднюю часть массива с помощью slice():

  • Если количество элементов нечётное, выведите средний элемент и по одному элементу с каждой стороны (3 элемента; если элемент всего один, выведите его)
  • Если количество элементов чётное, выведите два средних элемента

Для apple,banana,orange,grape результатом будет ["banana", "orange"], а для a,b,c,d,e — ["b", "c", "d"].

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

extends Node

func _ready():
	var items := OS.read_string_from_stdin().split(",")
	# Выведите элементы, находящиеся посередине
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор GDScript