Menu
CoddyTech

无返回值的函数

本课属于 Coddy Lua 学习旅程的“Luau 入门”单元。第 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")。

按下运行代码:输出会显示 Welcome, Alice! 和 ERROR: Invalid input。

亲手试试

-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) 调用 displayWelcome("Alice"),然后调用 logError("Invalid input")

Luau 入门中的所有课

自己练习: Luau 在线编译器