Menu
Coddy logo textTech

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

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

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

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

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

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

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

Во время выполнения ничего не меняется (как обычно): function без значения 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

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