Функции без возвращаемого значения
Часть раздела Введение в 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.
Задание
ЛегкоНапиши две функции, которые выводят данные и ничего не возвращают.
- Напиши
local function displayWelcome(userName: string): (), которая выводит`Welcome, {userName}!`. - Напиши
local function logError(errorMessage: string): (), которая выводит`ERROR: {errorMessage}`. - Вызови
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
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции без возвращаемого значенияНеобязательные параметрыЗначения параметров по умолчаниюЗначения по умолчанию для булевых параметровФункции с переменным числом аргументовОпределение типов функцийПовторение: типизированные функции2Основные типы
Число, строка и булево значениеТип 'any': запасной выходТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовПовторение: практика с основными типами5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: массивы и отображения
Типизированные массивыДобавление и чтение элементовЧто такое тип отображения?Объявление и доступ к отображениямПеребор таблицТаблицы смешанной структурыЧтение сеткиСоздание сеткиtable.unpackПовторение: массивы и отображенияПотренируйтесь самостоятельно: Онлайн-компилятор Luau