Компиляция по условию

Иногда может быть необходимо использовать в библиотеке специфичный API для каждой платформы на которой компилируется код. В других случаях, вы можете захотеть сделать какую-либо оптимизацию, только если вы включили флаг ON. Для всех этих случаев вы можете использовать макрос компиляции по условию (условная компиляция). Вот пример многоплатформенного кода :
    #if flash8
    // код haXe использующий специфику flash player 8
    #else flash
    // код haXe specific для flash (любой версии)
    #else js
    // код haXe для javascript
    #else neko
    // код haXe специфичный для neko
    #else error // будет выводить ошибку "Not implemented on this platform" (не реализовано на этой платформе)
    #end
А вот другой пример, для включения логирования, только если флаг mydebug выставлен при компиляции кода:
    #if mydebug
    trace("Some debug infos");
    #end
Отметьте, что нельзя использовать #else без переменной после. Следующий код неправилен:
    #if something
    // какой-либо код
    #else
    var i = 15;
    // что-то другое
    #end
Это будет интерпретировано как #else var и вы получите синтактическую ошибку. Также можно определять собственные переменные, используя опции командной строки компилятора haXe.

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <blockcode> <dd>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>.

Подробнее о форматировании

CAPTCHA
Этот вопрос помогает предотвратить автоматический спам
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.
To prevent automated spam submissions leave this field empty.