表的构造与 unpack()
本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 6 课,共 54 课。
Lua 提供了一对互补的多值处理技巧:表构造和 The 这些技巧可以无缝配合使用。你可以将值收集到表中,操作这个表,然后再将它解包为单独的值。
unpack()。处理需要灵活处理参数的函数时,这些技巧特别有用。你可以使用带花括号的表构造器语法,将多个值收集到类似列表的表中。这样可以将所有值收集到一个表结构中。local args = {10, 20, 30}
print(args[1]) -- 输出:10
print(#args) -- 输出:3unpack() 函数执行相反的操作。它接收一个列表式表,并将其中的所有元素作为单独的值返回。这样你就可以将表中的内容作为单独的参数传递给函数。重要:虽然较新版本的 Lua(5.2+)将此函数移到了 table.unpack(),但此环境运行的是 Lua 5.1,因此你必须使用全局 unpack() 函数。local numbers = {5, 10, 15}
print(unpack(numbers)) -- 输出:5 10 15挑战
简单编写一个函数 forwardArguments,接收三个数字 a、b 和 c,并通过构造表和使用 unpack() 返回它们的和。
使用 {a, b, c} 语法创建一个包含这三个参数的表,然后解包这些值,并将它们传递给另一个用于计算它们总和的函数。
注意:请使用全局 unpack() 函数,而不是 table.unpack(),以确保与此环境兼容。
逻辑:
- 使用
{a, b, c}创建一个包含这三个参数的表 - 创建一个名为
sum的独立函数,接收三个参数并返回它们的和 - 使用
unpack()将表中的值传递给sum函数 - 返回
sum函数的结果
参数:
a(数字):第一个数字b(数字):第二个数字c(数字):第三个数字
返回值:三个数字的和(数字)
亲手试试
function forwardArguments(a, b, c)
-- 创建一个单独的函数来计算总和
-- 创建一个包含全部三个参数的表
-- 将表中的值解包并传给求和函数
-- 提示:使用全局函数 'unpack' 展开表中的参数
end这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Lua 在线编译器