Menu
CoddyTech

Функции без возвращаемого значения

Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 25 из 80.

Многие функции не вычисляют значение. Они делают что-то: выводят сообщение, обновляют таблицу, сохраняют состояние. В Luau можно аннотировать функцию как возвращающую ничего, указав пустой тип возвращаемого значения ():

local function logMessage(message: string): ()
    print(message)
end

local counter = 0
local function incrementCounter(): ()
    counter += 1
end

Если ты знаком с TypeScript, то () выполняет роль void, но в Luau это записывается парой пустых скобок, буквально означающей «ноль возвращаемых значений».

Аннотация необязательна: не указывай её, и Luau сам определит, что функция ничего не возвращает. Явная запись : () документирует твой замысел: каждый, кто читает сигнатуру, понимает, что эту функцию вызывают ради её побочных эффектов, а не результата.

Во время выполнения ничего не меняется (как обычно): функция без значения return просто возвращает nil, если попытаться сохранить её результат, — так же, как в обычном Lua.

challenge icon

Задание

Легко

Напиши две функции, которые выводят данные и ничего не возвращают.

  1. Напиши local function displayWelcome(userName: string): (), которая выводит `Welcome, {userName}!`.
  2. Напиши local function logError(errorMessage: string): (), которая выводит `ERROR: {errorMessage}`.
  3. Вызови displayWelcome("Alice"), затем logError("Invalid input").

Нажми Run Code: в выводе отображаются Welcome, Alice! и ERROR: Invalid input.

Попробуйте сами

-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) вызовите displayWelcome("Alice"), затем logError("Invalid input")

Все уроки раздела Введение в Luau

Потренируйтесь самостоятельно: Онлайн-компилятор Luau