Решён
Для чего нужна функция return() в GDScript?

Начал изучать Godot, пишу первые скрипты. Везде в туториалах вижу return, но не понимаю зачем он нужен если функция и так заканчивается когда код в ней кончается.

Вот например:

func get_damage():
    return 10

Почему нельзя просто написать var damage = 10 и использовать эту переменную? В чем смысл возвращать значение через return?

Решение
34
Эксперт • 3 ответа

return делает две вещи:

  1. Немедленно прерывает выполнение функции
  2. Передает значение туда, откуда функция вызывалась

Без return ты не можешь использовать результат работы функции в другом месте кода. Вот смотри:

func calculate_damage(base, multiplier):
    return base * multiplier

func _ready():
    var total = calculate_damage(10, 1.5)  # total = 15
    print(total)

Если бы ты просто создал переменную внутри функции, она бы умерла вместе с функцией. return позволяет вытащить значение наружу.

Аватар Никита Фролов

А, теперь дошло! То есть return как бы выбрасывает значение из функции и его можно поймать в переменную?

Аватар Григорий Панов

Именно так. Функция отработала, вернула результат, ты его подхватил и используешь дальше.

47
Участник • 2 ответа

Представь функцию как мясорубку. Ты кидаешь туда мясо (аргументы), она крутит, и return - это то что вылезает с другой стороны (фарш). Без return мясорубка просто жует мясо внутри себя и ничего не выдает.

21
Эксперт • 3 ответа

Еще return полезен для раннего выхода из функции:

func process_enemy(enemy):
    if enemy == null:
        return  # выходим сразу, дальше код не выполняется

    enemy.take_damage(10)
    enemy.play_animation("hit")

Без этого пришлось бы весь код оборачивать в if, получается лапша.

0
Участник • 2 ответа

это базовая концепция программирования вообще, не только gdscript. если ты return не понимаешь, может стоит сначала основы выучить прежде чем в геймдев лезть?

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.