Spec-Zone.ru › Haxe

Reflect

без пакета

Доступно на всех платформах

API Reflect — способ динамического управления значениями через абстрактный интерфейс без типов. Используйте с осторожностью.

См. также:

  • https://haxe.org/manual/std-reflection.html

Статические методы

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 является одним из следующих:

  • экземпляр класса
  • структура
  • Class<T>
  • Enum<T>

В противном случае, включая случай, когда 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API