- Lua 教程
- Lua - 首页
- Lua 基础
- Lua - 概述
- Lua - 环境
- Lua - 基本语法
- Lua - 注释
- Lua - 打印 Hello World
- Lua - 变量
- Lua - 数据类型
- Lua - 运算符
- Lua - 循环
- Lua - 决策
- Lua - 函数
- Lua - 日期和时间
- Lua 数组
- Lua - 数组
- Lua - 多维数组
- Lua - 数组长度
- Lua - 遍历数组
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 列表搜索
- Lua 模块
- Lua - 模块
- Lua - 命名空间
- Lua 元表
- Lua - 元表
- Lua 协程
- Lua - 协程
- Lua 文件处理
- Lua - 文件 I/O
- Lua 库
- Lua - 标准库
- Lua - 数学库
- Lua - 操作系统功能
- Lua 有用资源
- Lua - 快速指南
- Lua - 有用资源
- Lua - 讨论
Lua - 列表搜索
当我们想要迭代一个项目以查找特定值时,我们通常使用 for 循环。这始终是最直观的方法,也是推荐的方法。
让我们来看一个例子,其中我们在 Lua 中存储了一个水果列表,然后我们想要检查特定水果是否存在于其中。为此,最原生且高效的方法是迭代列表元素并将其中的每个元素与我们正在查找的元素进行比较。这种技术或方法也称为线性搜索。
示例
考虑以下示例:
main.lua
local fruits = { "apple", "orange", "pear", "banana" } for _, fruit in pairs(fruits) do if fruit == "pear" then do print("We Found it!") break end else print("Oh no, keep traversing!") end end
输出
Oh no, keep traversing! Oh no, keep traversing! We Found it!
虽然上述方法运行良好,但建议使用集合而不是遍历列表。
示例
以下示例使用我们可以使用的**集合**方法,它运行良好。考虑以下示例:
main.lua
function Set (list) local set = {} for _, l in ipairs(list) do set[l] = true end return set end local fruits = Set { "apple", "orange", "pear", "banana" } if fruits["pear"] then do print("Present in the set") end end
输出
Present in the set
广告