Menu
Coddy logo textTech

Функции, ничего не возвращающие

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

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

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

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

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

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

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

challenge icon

Задание

Легко

Создайте функцию с именем displayWelcome, которая принимает userName: string и имеет явный тип возвращаемого значения (). Она должна выводить: "Welcome to our application, [userName]!"

Создайте функцию с именем logError, которая принимает errorMessage: string с типом возвращаемого значения (). Она должна выводить: "ERROR: [errorMessage]"

Создайте функцию с именем processData, которая не принимает параметров, с типом возвращаемого значения (). Она должна выводить "Processing data...", а затем "Data processing complete." на следующей строке.

Вызовите их в следующем порядке:

  1. displayWelcome("Alice")
  2. processData()
  3. logError("Invalid input detected")
  4. displayWelcome("Bob")

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

-- Напишите код здесь
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- затем вызовите: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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