Процедуры Обзор
 
Обзор различных типов процедур FB.

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

Процедуры

Sub является процедурой, которая не возвращает значений. Они объявляются с помощью ключевого слова Declare и определяются с использованием ключевого слова Sub. Декларация процедуры вводит свое имя, так что она может быть вызвана в последствии, а тело процедуры содержит список операторов кода, которые будут выполняться при вызове. Sub вызывается просто, используя ее имя где-то в программе.

' декларация sub 'MyProcedure'
Declare Sub MyProcedure

' вызов процедуры 'MyProcedure'
MyProcedure

' определение тела процедуры для 'MyProcedure'
Sub MyProcedure
    Print "the body of MyProcedure"
End Sub

на выходе будет:

the body of MyProcedure

Обратите внимание, что декларация необходима для вызова процедуры. Процедура может быть определена позднее в коде, или даже в другом исходном файле вообще.

Функции

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

' Декларация и определение процедуры (функции), которая возвращает целое значение
Function MyProcedure As Integer
    Return 10
End Function

' вызов процедуры(функции), и сохранение ее возвращаемого значения в переменную
Dim i As Integer = MyProcedure
Print i

на выходе будет:

10
Поскольку определение является так же и декларацией в этом примере, процедура может быть вызвана после того, как была определена.

Есть общее соглашение для многих языков при вызове процедуры размещать скобки '()' после имени процедуры, чтобы показать вызов процедуры. FreeBASIC однако этого не требует.

См. также