Menu
CoddyTech

使用 pairs() 遍历

本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 1 课,共 54 课。

在 Lua 中处理字典式表时,你通常需要访问其中存储的每个键值对。pairs() 函数可以帮你做到这一点,它允许你遍历表中的所有条目,无论键的类型是什么。在 for 循环中使用 pairs() 的语法如下:
for key, value in pairs(myTable) do
    -- 在这里使用 key 和 value
end
在循环的每次迭代中,pairs() 会同时提供键及其对应的值。这意味着你可以同时访问并处理这两项信息。这是一个关于玩家库存的实用示例:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
这段代码会打印每个物品的名称和数量。pairs() 函数可处理任何类型的键,包括字符串、数字,甚至其他表。处理字符串在 Lua 中,你可以使用连接运算符将字符串连接起来,这个运算符由两个点组成(..)。例如,"Hello" .. " " .. "World" 的结果是 "Hello World"。如果你需要将文本格式化为多行,可以使用换行转义字符 "\n"。当 Lua 在字符串中遇到 "\n" 时,会将其视为换到下一行的命令。例如,print("Line 1\nLine 2") 会输出:
Line 1
Line 2
challenge icon

挑战

简单

编写一个函数 printInventory,它接收一个 inventory 表,并返回一个格式化字符串,列出所有物品及其数量。

使用 pairs() 遍历 inventory 表,并构建一个字符串,其中每行显示一个物品名称,后面跟着它的数量,格式为 item: quantity。每个物品都应单独占一行。

要让每个物品单独占一行,请在各项之间使用换行符 "\n"。例如,"apple: 5\nbanana: 3" 会显示为两行。注意,第一项前面不要添加 "\n":只在各项之间添加换行符。

参数:

  • inventory(表):一个字典式的表,其中键是物品名称(字符串),值是数量(数字)

返回值:一个字符串,每行包含一个物品及其数量,各行之间用 "\n" 分隔。{apple=5, banana=3} 的输出示例:
apple: 5
banana: 3

亲手试试

function printInventory(inventory)
    -- 要设置输出格式,你可以用 '..' 运算符拼接字符串。
    -- 要换行,可以使用特殊字符 '\n'。
    -- 你可能需要记录当前添加的是第一个项目,还是后续项目,
    -- 以决定是否在项目前添加换行符。
    
    -- 在这里编写代码
end
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Lua 在线编译器