Срезы массивов
Часть раздела Основы путешествия по 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 по-прежнему хранятся все десять элементов.
Задание
ЛегкоПрограмма считывает строку элементов, разделённых запятыми, в массив 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(",")
# Выведите элементы, находящиеся посередине
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор GDScript