Call
 
Оператор для вызова подпрограммы

Синтаксис

Call procname ([parameter list])

Описание

Вызывает Sub или Function.

Это ключевое слово осталось от предыдущих диалектов BASIC и главным образом является устаревшим.

В -lang qb, оператор может использоваться для вызова Sub в коде, перед декларацией. Функция будет неявно Declare(декларироваться), с любых параметрами, переданными как ByRef As Any.
Примечание: пока функция не объявлена, ни одна проверка типа не делается с параметрами, таким образом это дело программиста - убеждаться, что они имеют правильный тип.

Пример

'' Компиляция с -lang qb или -lang fblite

#lang "fblite"

Declare Sub foobar(ByVal x As Integer, ByVal y As Integer)
Call foobar(35, 42)

Sub foobar(ByVal x As Integer, ByVal y As Integer)
Print x; y
End Sub


'' Компиляция с -lang qb или -lang fblite

#lang "fblite"

Function f ( ) As Integer
f = 42
End Function

Call f ' выполнить функцию f, но игнорировать ответ


'' Компиляция с -lang qb

'$lang: "qb"

Call mysub(15, 16) '' Вызов "mysub" прежде чем она была объявлена, или даже упомянута.

Sub mysub(ByRef a As Integer, ByRef b As Integer)
    
    Print a, b
    
End Sub


Различия диалектов

  • Использование Call не допускается в диалекте -lang fb.
  • -lang fblite диалект не позволяет вызывать функции, которые ранее не были объявлены.

Отличия от QB

  • Процедура уже должна быть объявлена.
  • Call в QB сделает копию всех параметров, поэтому изменения, внесенные к аргументам внутри вызываемого Sub не будут отражены в переменных в вызывающем коде.

См. также