Menu
CoddyTech

Значения по умолчанию

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

У параметра может быть значение по умолчанию, записанное с помощью = в объявлении. Тогда при вызове аргумент можно пропустить, и параметр получит значение по умолчанию:

func greet(player, greeting = "Hello"):
	print(greeting, ", ", player, "!")
greet("Ana")
greet("Ana", "Welcome back")
Hello, Ana!
Welcome back, Ana!

В первый вызов передаётся один аргумент, поэтому greeting равен "Hello". Во второй вызов передаётся собственное значение, которое заменяет значение по умолчанию.

У функции может быть несколько значений по умолчанию, и типизированные параметры тоже могут их иметь:

func spawn(enemy: String, count: int = 1, speed: float = 2.5) -> void:
	print(count, " x ", enemy, " at speed ", speed)

spawn("bat") выводит 1 x bat at speed 2.5, а spawn("bat", 3) выводит 3 x bat at speed 2.5. Аргументы по-прежнему заполняют параметры по порядку, поэтому нельзя передать speed, не передав также count.

Параметры со значением по умолчанию должны идти после параметров без значения по умолчанию. func greet(greeting = "Hello", player): — это ошибка: «После необязательных параметров не могут идти обязательные параметры».

challenge icon

Задание

Легко

Программа считывает имя игрока в player.

  1. Ниже _ready() объяви функцию greet с двумя параметрами: player_name и greeting со значением по умолчанию "Hello". Она выводит приветствие, запятую и пробел, имя и !.
  2. В _ready() вызови greet(player), затем greet(player, "Welcome back").

Для ввода Ana результат будет таким:

Hello, Ana!
Welcome back, Ana!

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

extends Node

func _ready():
	var player := OS.read_string_from_stdin()
	# Вызовите greet(player), затем greet(player, "Welcome back")

# Объявите ниже greet() с "Hello" в качестве приветствия по умолчанию
quiz iconПроверьте себя

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

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

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