Разделы
- 1. Введение
- 2. Описание языка
- 3. Интерфейс программирования приложений (API)
- 3.1. Стек
- 3.2. Резервация памяти
- 3.3. Сообщения
- 3.4. Типы данных
- 3.5. Функции
- 3.5.1. Базовые функции скриптоввой системы
- 3.5.2. Функции для вставки на вершину стека значения
- 3.5.3. Перевод значений со стека в скриптовую ситему (экспорт (stack => script))
- 3.5.4. Функции для получения со стека (stack => C(++))
- 3.5.5. Функции для работы с аргументами в вызванной C(++) функции из скриптовой системы (script => C(++) function)
- 3.5.6. Функции отладки (DEBUG)
- 3.5.7. Функции для работы с препроцессом
- 4. Стандартная библиотека
2.7.1. Объявление функций
Синтаксис объявления функции:
function func(arg1,arg2){ //body };
Вариант присваивания переменной:
$func = function (arg1,arg2){ //body };
Присваивание значения функции переменной является составным выражением и по сути является самостоятельной конструкцией.
Функция может создаваться внутри функции и так далее.
Каждая функция имеет свое имя, и только одна функция может быть присвоена одной переменной.
Имена аргументов функции должны быть уникальны в пределах этой функции.
Объявление функции - исполняемая операция, поэтому результатом будет объект функции со всеми необходимыми данными и скомпилированным телом исполнения.
Возвращать функция может только одно значение.
Аргументы функции инициализируются при ее вызове.
Аргументы в функции передаются по ссылке, то есть можно записывать результат работы непосредственно в аргументы, и это будет доступно вне функции, там где значения переданные аргументам будут доступны. Однако записывать в языковые данные - нельзя.
Пример недопустимого кода:
function qwert(a1,a2){ a1 = 10;a2 = 20; } qwert(1,2);