Was ist der effizienteste Weg, um festzustellen, ob eine Tabelle leer ist (dh derzeit weder Werte im Array-Stil noch Werte im Diktat-Stil enthält)?
Derzeit verwende ich next()
:
if not next(myTable) then
-- Table is empty
end
Gibt es einen effizienteren Weg?
Hinweis: Der #
Operator reicht hier nicht aus, da er nur mit den Werten im Array-Stil in der Tabelle arbeitet - daher #{test=2}
ist er nicht zu unterscheiden, #{}
da beide 0 zurückgeben. Beachten Sie auch, dass die Überprüfung, ob die Tabellenvariable ist nil
, nicht ausreicht, da ich nicht suche Nullwerte, sondern Tabellen mit 0 Einträgen (dh {}
).
false
wäre dies kein erwarteter Schlüssel, so dass er einwandfreiif not
funktioniert, aber ich werde es mir wahrscheinlich zur Gewohnheit machen, ihnnil
stattdessen in Zukunft zu vergleichen, nur als gute Angewohnheit. Und ja, ich habe allgemeine Dienstprogrammfunktionen aus Geschwindigkeitsgründen an lokale Variablen gebunden. Vielen Dank für die Eingabe.