Menu
CoddyTech

Типизированные массивы

Часть раздела Основы путешествия по 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].

challenge icon

Задание

Легко

Программа считывает количество из входных данных, затем считывает столько же результатов, по одному в строке.

  1. Объяви scores как пустой типизированный массив целых чисел
  2. Считай каждый результат, преобразуй его с помощью int() и добавь в scores
  3. Выведи 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: " и наибольший результат
quiz iconПроверьте себя

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

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

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