AngelScript Help

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

https://www.angelcode.com/angelscript/sdk/docs/manual/doc_script_anonfunc.html

Они же лямбды - функции объявляемые локально.

// Объявляем сигнатуру функции сравнения funcdef bool Comparator(int a, int b); // Объявляем функцию которая сравнивает два числа используя функцию сравнения bool Compare(int a, int b, Comparator @comparator){ return comparator(a,b); } void [[[main|main.html]]]() { // Сравниваем числа и ложим результат в переменные bool result1 = Compare(1, 2, function(a,b){ return a == b; }); bool result2 = Compare(3, 4, function(a,b){ return a != b; }); }

Неоднозначность

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

funcdef void A(int); funcdef void B(float); void Overloaded(A@) {} void Overloaded(B@) {} void [[[main|main.html]]]() { Overloaded(function(int a) {}); }
Last modified: 16 October 2024