Найти тему
Nikolay Lobkov

Анонимные функции в Godot

В Godot 4 вместе с Callable были добавлены анонимные функции - это безымянные функции, которые хранятся в виде Callable. Такие функции можно хранить в переменной.

Чтобы создать анонимную функцию, достаточно написать func(), после добавить двоеточие и ваш код.

Анонимная функция в переменной.
Анонимная функция в переменной.

В таких функциях также как и в обычных функциях можно добавить аргументы.

Анонимная функция с аргументом "arg".
Анонимная функция с аргументом "arg".

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

Выводит "pressed" при нажатии кнопки.
Выводит "pressed" при нажатии кнопки.

Обратите внимание, что анонимная функция хранится в виде Callable, а не в виде обычной функции, поэтому, чтобы вызвать анонимную функцию, нужно воспользоваться встроенным в Callable методом call() или callv(). Отличаются эти два метода тем, что в callv() все аргументы должны быть в одном массиве.

Вызов анонимной функции двумя методами, call и callv.
Вызов анонимной функции двумя методами, call и callv.
Неправильный и правильный вызов анонимной функции.
Неправильный и правильный вызов анонимной функции.

Анонимные функции есть только в версиях Godot позже 4.0. В версиях раньше их нет.