Reflect
Доступно на всех платформах
API Reflect — способ динамического управления значениями через абстрактный интерфейс без типов. Используйте с осторожностью.
См. также:
Статические методы
staticcallMethod(o:Dynamic, func:Function, args:Array<Dynamic>):Dynamic
Вызов метода func с заданными аргументами args.
Объект o в большинстве случаев игнорируется. Он служит контекстом this в следующих ситуациях:
- (neko) Позволяет переключиться на контекст
oво всех случаях. - (macro) То же, что neko для Haxe 3. Переключение контекста отсутствует в Haxe 4.
- (js, lua) Требует аргумент
o, если аргументfuncне имеет, но должен иметь контекст. Это может произойти при обращении к полю функции напрямую, например, черезReflect.fieldили с помощью(object : Dynamic).field. Однако, если уfuncесть контекст,oигнорируется, как и на других целевых платформах.
staticcompare<T>(a:T, b:T):Int
Сравнение a и b.
Если a меньше b, результат отрицательный. Если b меньше a, результат положительный. Если a и b равны, результат равен 0.
Эта функция определена только если a и b имеют одинаковый тип.
Если этот тип — функция, результат неопределён, и следует использовать Reflect.compareMethods вместо неё.
Для всех остальных типов результат равен 0, если a и b равны. Если они не равны, результат зависит от типа и является отрицательным, если:
- Числовые типы: a меньше b
- Строка: a лексикографически меньше b
- Другие: неопределён
Если a и b равны null, результат равен 0. Если только один из них равен null, результат неопределён.
staticcompareMethods(f1:Dynamic, f2:Dynamic):Bool
Сравнение функций f1 и f2.
Если f1 или f2 равны null, результат — ложь. Если f1 или f2 не являются функциями, результат неопределён.
В противном случае результат — истина, если f1 и f2 физически равны, ложь в противном случае.
Если f1 или f2 являются замыканиями методов-членов, результат — истина, если они являются замыканиями одного и того же метода на одном и том же значении объекта, ложь в противном случае.
staticcopy<T>(o:Null<T>):Null<T>
Копирование полей структуры o.
Это гарантируется только для анонимных структур.
Если o равно null, результат — null.
staticdeleteField(o:Dynamic, field:String):Bool
Удаление поля с именем field из структуры o.
Этот метод гарантируется только для анонимных структур.
Если o или field равны null, результат неопределён.
staticfield(o:Dynamic, field:String):Dynamic
Возвращает значение поля с именем field в объекте o.
Если o не является объектом или не имеет поля с именем field, результат — null.
Если поле определено как свойство, его обработчики игнорируются. Обратитесь к Reflect.getProperty для функции, поддерживающей обработчики свойств.
Если field равно null, результат неопределён.
staticfields(o:Dynamic):Array<String>
Возвращает поля структуры o.
Этот метод гарантируется только для анонимных структур. Обратитесь к Type.getInstanceFields для функции, поддерживающей экземпляры классов.
Если o равно null, результат неопределён.
staticgetProperty(o:Dynamic, field:String):Dynamic
Возвращает значение поля с именем field в объекте o, учитывая функции-получатели свойств.
Если поле не является свойством, эта функция ведёт себя как Reflect.field, но может быть медленнее.
Если o или field равны null, результат неопределён.
statichasField(o:Dynamic, field:String):Bool
Определяет, содержит ли структура o поле с именем field.
Это гарантируется только для анонимных структур. Обратитесь к Type.getInstanceFields для функции, поддерживающей экземпляры классов.
Если o или field равны null, результат неопределён.
staticisEnumValue(v:Dynamic):Bool
Определяет, является ли v значением перечисления.
Результат — истина, если v имеет тип EnumValue, то есть конструктор перечисления.
В противном случае, включая случай, когда v равно null, результат — ложь.
staticisFunction(f:Dynamic):Bool
Возвращает true, если f является функцией, и false в противном случае.
Если f равно null, результат — ложь.
staticisObject(v:Dynamic):Bool
Определяет, является ли v объектом.
Результат — истина, если v является одним из следующих:
В противном случае, включая случай, когда v равно null, результат — ложь.
staticmakeVarArgs(f:Array<Dynamic> ‑> Dynamic):Dynamic
staticmakeVarArgs(f:Array<Dynamic> ‑> Void):Dynamic
Преобразование функции, принимающей массив аргументов, в функцию, которую можно вызывать с любым количеством аргументов.
staticsetField(o:Dynamic, field:String, value:Dynamic):Void
Устанавливает поле с именем field объекта o на значение value.
Если у o нет поля с именем field, эта функция гарантируется только для анонимных структур.
Если o или field равны null, результат неопределён.
staticsetProperty(o:Dynamic, field:String, value:Dynamic):Void
Устанавливает поле с именем field объекта o на значение value, учитывая функции-установщики свойств.
Если поле не является свойством, эта функция ведёт себя как Reflect.setField, но может быть медленнее.
Если field равно null, результат неопределён.
© 2005–2020 Haxe Foundation
Licensed under a MIT license.
https://api.haxe.org/Reflect.html