Аргументы функции
Они же параметры - специальные переменные, которые являются частью сигнатуры функции. Когда у функции есть параметры, вы можете предоставить ей конкретные значения этих параметров.
function A takes string B, string C returns nothing // Объявление функции с именем A, которая принимает две строки B и C
ConsolePrint(B + " " + C) // Делаем конкатенацию строк и выводим результат в консоль
endfunction
function main takes nothing returns nothing
call A("Продам", "гараж") // Вызываем функцию A и передаём ей две строки аргументами
endfunction
Порядок вычисления
Аргументы вычисляются в том порядке, в котором были объявлены.
function A takes string B returns string
call ConsolePrint(B)
return B
endfunction
function C takes string D, string E returns nothing
endfunction
function main takes nothing returns nothing
call C(A("1"), A("2")) // 12
endfunction
Локальные переменные
Внутренний механизм аргументов и локальных переменных одинаков за тем лишь различием, что аргументы можно передать в функцию извне.
На уровне движка все они хранятся в функции, а доступ к ним осуществляется по имени. Поэтому такой код хоть и бесполезен, но вполне валиден.
function A takes real B, integer B, integer B returns nothing
local integer B
local integer B
local location B
local unit B
local string B = "Work"
call ConsolePrint(B) // Будет взят последний аргумент/[[[переменная|local.html]]] совпадающий по имени
endfunction
function main takes nothing returns nothing
call A(1.2, 3, 4)
endfunction
handle
Last modified: 22 October 2024