Основы языка Visual FoxPro


Организация процедур и функций - часть 2


Функции могут возвращать результат своей работы;

То есть, можно сказать и так, если процедура что-то выполняет, то функция что-то вычисляет и сообщает об этом вызывающей программе. Конечно же, это деление весьма условно, и, как мы убедимся, более удобно использовать функции.

Итак, функция начинается ключевым словом FUNCTION и завершается словом RETURN. После RETURN обычно следует переменная или выражение, которое будет возвращено вызывающей программе. Если это выражение отсутствует или отсутствует само ключевое слово RETURN, то предполагается возврат логического выражения .T. (истина).

Пример функции, которая вычисляет что-то:

FUNCTION MyFUNC

PARAMETER X, Y, Z

LOCAL Result

Result=x+y+z

RETURN Result

Вызов этой функции может быть таким:

MyVar = MyFunc(MyParam1, MyParam2, MyParam3)

или таким:

Something = MyFunc(Param1) + MyFunc(Param2)

или даже так:

=MyFunc()

Как видно, во втором и третьем случае число передаваемых в функцию параметров меньше, чем объявлено в самой функции. Это не ошибка, "лишние" параметры принимаются как переменные логического типа со значением .F. (ложно). Этот момент следует учитывать,

Число переданных параметров в функции всегда можно узнать с помощью функции PARAMETERS(), или проверить параметры функцией EMPTY(), которая вернет .T., если выражение, переданное в нее, является пустым (то есть, .F. или пустая строка или 0 или пустая дата или NULL)

В последнем примере видно как функция вызывается без фиксации возвращаемого результата (кстати говоря, тут и сам знак = не нужен, но так читабельнее). То есть в этом случае, возвращаемый результат нигде не сохраняется. В этом случае, функция ведет себя как типичная процедура, выполняя что-то, а не вычисляя. Кстати, большинство функциональных возможностей VFP реализовано именно как функции.

Далее мы увидим, что методы классов тоже реализуются именно как функции. Функции, определенные Вами, в VFP называются User Defined Function, то есть функции, определенные пользователем. UDF это очень мощный инструмент структурного программирования.




Начало  Назад  Вперед



Книжный магазин