Перейти до змісту

Функції та Процедури

Функція - це підпрограма, що містить в собі певний код, яку можна викликати з інших місць програми. Функція приймає вхідні дані, обробляє їх та повертає результат. Функції дозволяють уникнути дублювання коду та забезпечують більшу модульність і повторне використання коду.
Функції та процедури - у Барвінку функції та процедури записуються однаково, без відмінностей в синтаксисі, але процедура не повертає значень, відтак виконується лише для зміни стану програми.

Синтаксис

Функції та процедури записуються за допомогою ключового слова функція:

функція <назва>([параметри])
    [код]
кінець

Повернення значень

За замовчування функції у Барвінку повертають ніц. Щоб повернути значення з функції, потрібно використати ключове слово повернути:

функція привіт()
    повернути "Привіт, Світ!"
кінець

а = привіт() ! В змінну "а" записалось значення "Привіт, Світ!"

повернути може нічого не повертати, для цього потрібно використати синтаксис повернути;

функція тест()
    повернути; ! Поверне ніц
    друкр("Привіт, Світ!") ! Цей код не виконається
кінець

Параметри та аргументи

В оголошенні функції можна вказати список параметрів.

функція додати(а, б) ! Функція приймає два параметри "а" та "б"
    повернути а + б
кінець

Аргументи - це значення, які передаються в функцію під час виклику.

додати(1, 2) ! Передаються аргументи "1" та "2"

Варіативні функції

Варіативна функція - це функція зі змінним числом аргументів. Для реалізації такої функції потрібно використати три крапки:

функція варіативна(а, б, в...)
кінець

В наведеному вище прикладі, параметр "в" є варіативним. Варіативний параметр є кортежем, в якому збережені по порядку аргументи, які не вмістилися в параметри до варіативного.

Важливо

Варіативний параметр може бути тільки один та має стояти після простих параметрів та перед іменованими.

  • Виклик такої варіативної функції не відрізняється від виклику простої функції.
  • При виклику варіативної функції потрібно як мінімум заповнити параметри до варіативного, тобто якщо сигнатура функції виглядає так: функція тест(а, б, в...), то при виклику потрібно передати як мінімум 2 аргументи.

Іменовані параметри

Іменовані параметри - це параметри, які мають значення, встановлене заздалегідь. Такі параметри можуть стояти лише в кінці списку параметрів.

функція тест(а=20) ! Параметр "а" є іменованим
    друкр(а)
кінець

Є декілька способів викликати таку функцію:

тест()     ! Без заповнення параметра, виведе 20
тест(50)   ! Передати аргумент як для звичайного параметра, виведе 50
тест(а=60) ! Вказати ім'я параметра та присвоїти йому значення, виведе 60

Замикання

Замикання - це функції, які зберігають(замикають) локальні змінні зовнішньої функції.

функція додати(а)
    функція внутрішняФункція(б)
        повернути а + б ! Замикання змінної "а"
    кінець
    повернути внутрішняФункція ! Повернення замикання
кінець

дваДодати = додати(2)
вісімДодати = додати(8)

друкр(дваДодати(2))   ! Виведе 4
друкр(вісімДодати(2)) ! Виведе 10