Инструменты пользователя

Инструменты сайта


ru:autorun:documentation:func_endfunc

Func...EndFunc

Func functionname([Param1 .. ParamN])
 
EndFunc

Задаёт пользовательскую функцию.

Параметры функций

В функциях могут быть заданы 4 вида формальных параметров:

  • Простой параметр
  • Параметр «по ссылке»
  • Параметр со значением по умолчанию
  • Открытый список параметров

Простой параметр

Простой параметр задаётся просто именем переменной. Значение актуального параметра будет вычисляться перед передачей в функцию.

MyFunc(123+456)
 
Func MyFunc(var)
    MsgBox(var) # --> 579
EndFunc

Параметр со значением по умолчанию

Этот параметр задаётся именем переменной с присвоением значения по умолчанию. Это позволяет опускать при вызове функции часть параметров. Параметры этого типа должны идти после простых параметров и параметров «по ссылке», но перед открытым списком параметров. Если актуальный параметр будет задан, то переменной будет присвоено его значение, если нет — значение по умолчанию.

MyFunc("text")
MyFunc("text", "My title")
 
Func MyFunc(var1, var2 = "Default title")
    MsgBox(var1) # --> text --> text
    MsgBox(var2) # --> Default title --> My title
EndFunc

Параметр "по ссылке"

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

Этот параметр задаётся именем переменной после ключевого слова ByRef. Значение актуального параметра также должно быть переменной, причём существующей на момент запуска функции, иначе будет выдано сообщение об ошибке. Значение актуальной переменной передаётся в функцию, которая может его изменить.

a = 1
 
MsgBox(a) # --> 1
 
MyFunc(a)
 
Func MyFunc(ByRef var)
    MsgBox(var) # --> 1
    var = 123
EndFunc
 
MsgBox(a) # --> 123

Открытый список параметров

Параметр задаётся специальным значением «…» и позволяет задавать неограниченный список входных параметров. Этот параметр должен находиться в самом конце списка формальных параметров, всё что находится после него будет проигнорировано. Получение переданных параметров производится с помощью специальной функции Args:

MyFunc(123, 456, 789)
 
Func MyFunc(...)
    For i = 1 To Args()
        MsgBox(Args(i), i) # --> 123 --> 456 --> 789
    Next
EndFunc

Связанные

Return, Args

ru/autorun/documentation/func_endfunc.txt · Последнее изменение: 2022/10/17 19:10 — loopback

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki