如何在 Lua 列表中搜索專案?


當我們想要迭代一個專案以查詢特定值時,我們通常使用 for 迴圈。它始終是最直觀的方法,也是推薦的方法。

讓我們探討一個示例,其中我們在 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!

雖然上述方法執行良好,但建議使用集合而不是遍歷列表。

示例

以下示例使用我們可以使用的**集合**方法,它執行良好。考慮以下示例:

 線上演示

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

更新於:2021年7月20日

3K+ 次瀏覽

啟動您的職業生涯

完成課程後獲得認證

開始
廣告