Добавлен , опубликован

cJass

Содержание:

1.1 Объявление переменных

В JASS2 все локальные переменные должны быть объявлены сразу после начала функции, в которой они используются. Используя cJass, вы можете объявлять локальные переменные в любом месте тела функции.
  function onKill takes nothing returns nothing
      unit u = GetTriggerUnit()
      if (GetUnitTypeId(u) == 'hfoo') then
          ReviveUnit(u)
      else
          effect sfx = AddSpecialEffect("deatheffect.mdx", GetUnitX(u), GetUnitY(u))
          Sleep(1)
          DestroyEffect(sfx)
      endif
  endfunction
Парсер перенесет в начало функции объявления всех локальных переменных. Так, как в JASS2 вместе с объявлением, переменная может быть инициализирована, cJass анализирует присваемое ей значение перед переносом в начало. Инициализация переменных явными значениями однозначно переносится вместе с соответствуюшими переменными. Остальные строки инициализации переменных остаются на местах объявления, например:
  function test takes nothing returns nothing
      DoNothing()
      integer i = 0                       // объявление будет перенесено целиком,
      location l = Location(0,0)      // эта переменная будет инициализирована здесь
  endfunction
После трансляции приведенный выше фрагмент кода будет выглядеть так:
  function test takes nothing returns nothing
      local integer i = 0
      local location l
      call DoNothing()
      set l = Location(0,0)
  endfunction
Также синтаксис cJass позволяет объявлять несколько переменных одного типа на одной строке, разделяя их запятой. Переменные могут быть инициализированы тут же:
      integer i = 7, j, k

`
ОЖИДАНИЕ РЕКЛАМЫ...