默认参数值
本课属于 Coddy Lua 学习旅程的“Luau 入门”单元。第 27 课,共 80 课。
可选参数会留下一个需要你处理的 nil。你通常真正需要的是一个备用值:“如果调用方没有指定,就使用 X。”Luau 不支持在签名中使用默认值语法(也就是说,没有 greeting: string = "Hello");你可以改用经典的 Lua 惯用写法,并为它加上类型:
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Hello, Alice
print(greet("Alice", "Howdy")) -- Howdy, Alice这个参数被标注为可选(string?),函数体的第一行会用默认值替换 nil。这种写法有效,是因为 nil 为假值:nil or "Hello" 的计算结果是 "Hello"。执行这一行后,检查器会知道 greeting 不再可能是 nil。
挑战
简单为可选参数设置默认值。
- 写出
local function calculateTax(price: number, rate: number?): number。 - 第一行是
rate = rate or 0.05,然后返回price * rate。 - 打印
calculateTax(100)和calculateTax(200, 0.08)。
按下运行代码:输出依次为 5 和 16。
亲手试试
-- 1)calculateTax(price: number, rate: number?): number
-- 用 `or` 的常见写法将 rate 的默认值设为 0.05
-- 2)打印 calculateTax(100) 和 calculateTax(200, 0.08) 的结果
Luau 入门中的所有课
自己练习: Luau 在线编译器