Sök…


Sök efter ett objekt i en lista

Det finns inget inbyggt sätt att söka i en lista efter ett visst objekt. Men programmering i Lua visar hur du kan bygga en uppsättning som kan hjälpa:

function Set (list)
  local set = {}
  for _, l in ipairs(list) do set[l] = true end
  return set
end

Sedan kan du lägga din lista i Set och testa för medlemskap:

local items = Set { "apple", "orange", "pear", "banana" }

if items["orange"] then
  -- do something
end

Använda en tabell som en uppsättning

Skapa en uppsättning

 local set = {} -- empty set

Skapa en uppsättning med element genom att ställa in deras värde till true :

 local set = {pear=true, plum=true}

 -- or initialize by adding the value of a variable:
 local fruit = 'orange'
 local other_set = {[fruit] = true} -- adds 'orange'

Lägg till en medlem i uppsättningen

lägg till en medlem genom att ställa in dess värde till true

  set.peach = true
  set.apple = true
  -- alternatively
  set['banana'] = true
  set['strawberry'] = true

Ta bort en medlem från uppsättningen

  set.apple = nil

Att använda nil istället för false att ta bort "äpple" från tabellen är att föredra eftersom det kommer att göra iterating element enklare. nil raderar posten från tabellen medan inställningen till false ändrar dess värde.

Medlemstest

  if set.strawberry then
      print "We've got strawberries"
  end

Iterera över element i en uppsättning

 for element in pairs(set) do
     print(element)
 end


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow