如何在 Lua 列表中搜索项目?
当我们想要遍历一个项目以找到一个特定的值时,我们通常使用for循环。它始终是最直观的方法,也是推荐的方法。
让我们探索一个例子,其中我们有一个存储在Lua中的水果列表,然后我们想检查其中是否存在特定的水果。为此,最原生但最有效的方法是迭代列表元素并将每个元素与我们正在寻找的元素进行比较。这种技术或方法也称为线性搜索。
示例
考虑下面显示的例子-
local fruits = { "apple", "orange", "pear", "banana" } for _, fruit in pairs(fruits) do if fruit == "pear" then do print("我们找到了!") break end else print("Oh no, keep traversing!") end end输出结果
Oh no, keep traversing! Oh no, keep traversing! 我们找到了!
虽然上述方法工作得很好,但建议使用集合而不是遍历列表。
示例
下面的例子使用了我们可以使用的Set方法,它的作用就像一个魅力。考虑下面显示的例子-
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