Типизированные массивы
Часть раздела Основы путешествия по GDScript на Coddy. Урок 68 из 92.
Обычный массив принимает значения любого типа. Типизированный массив принимает значения только одного типа, указанного в квадратных скобках после Array:
var scores: Array[int] = [90, 85, 77]
var players: Array[String] = ["Ana", "Ben"]
var bonuses: Array[int] = []GDScript проверяет каждое значение. Значение неверного типа в скобках обнаруживается до запуска программы:
var scores: Array[int] = [90, "high"] # Ошибка: "high" не является intДобавление значения неправильного типа во время выполнения программы тоже является ошибкой, и значение не добавляется:
var scores: Array[int] = [90, 85]
var bonus = "ten"
scores.append(bonus) # Ошибка, scores остаётся [90, 85]Вывод типа с помощью := не создаёт типизированный массив: var scores := [90, 85] — это обычный Array. Чтобы получить типизированный массив, напишите Array[int].
Поскольку типизированный массив знает тип своих элементов, var best := scores[0] выводит тип int. С обычным массивом та же строка приводит к ошибке, поскольку его элементы могут иметь любой тип.
Типизированные массивы имеют те же индексы и методы, что и обычные массивы, а print(scores) показывает их так же: [90, 85].
Задание
ЛегкоПрограмма считывает количество из входных данных, затем считывает столько же результатов, по одному в строке.
- Объяви
scoresкак пустой типизированный массив целых чисел - Считай каждый результат, преобразуй его с помощью
int()и добавь вscores - Выведи
scores, затемBest:и наибольший результат
Для приведённых ниже входных данных результат будет таким:
3
70
95
88[70, 95, 88]
Best: 95Попробуйте сами
extends Node
func _ready():
var count := int(OS.read_string_from_stdin())
# 1. Объявите scores — пустой типизированный массив int
# 2. Считайте count значений и добавьте каждое в scores
# 3. Выведите scores, затем "Best: " и наибольший результат
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыЦелочисленное делениеОператор остатка от деленияСокращённая запись арифметических операцийПовторение — простая математикаОператоры сравнения7Основы ввода и вывода
ВыводВывод с переменнымиФорматирование строкВводПреобразование типовПовторение — до 120Повторение — истина или ложь5Операторы, часть 2
Логические операторы, часть 1Логические операторы, часть 2Повторение: простая логикаЛогические операторы, часть 3Тернарный оператор8Калькулятор для разделения счёта
Приветственное сообщениеВвод данных11FizzBuzz с неожиданным поворотом
Обзор игрыФункция FizzBuzz14Массивы: продвинутый уровень
Срезы массивовОператоры последовательностейПринадлежностьСортировка и обратный порядок3Переменные. Часть 2
Объявление типаВывод типаКонстантыПовторение — инициализация переменныхПреобразование типов6Принятие решений
Оператор ifЕсли — иначеПовторение: простой калькуляторВложенные условия if — elseОператор match9Циклы
Цикл forЦикл whileBreakContinueПовторение — факториалФункция rangeВложенный циклПовторение — динамический ввод12Основы массивов
Объявление массиваДоступ к элементам массиваИзменение массивовМетоды массивовПовторение — массив произведенийПовторение — перевёрнутый массивТипизированные массивыПотренируйтесь самостоятельно: Онлайн-компилятор GDScript