Qual è il modo più efficiente per determinare se una tabella è vuota (ovvero, attualmente non contiene né valori in stile array né valori in stile dict)?
Attualmente sto usando next()
:
if not next(myTable) then
-- Table is empty
end
C'è un modo più efficiente?
Nota: l' #
operatore non è sufficiente qui, poiché opera solo sui valori in stile array nella tabella - quindi #{test=2}
è indistinguibile da #{}
perché entrambi restituiscono 0. Si noti inoltre che controllare se la variabile della tabella è nil
non è sufficiente perché non sto cercando valori nulli, ma piuttosto tabelle con 0 voci (cioè {}
).
false
non sarebbe una chiave prevista quindi haif not
funzionato bene, ma probabilmente prenderò l'abitudine di confrontarlo connil
invece in futuro, proprio come una buona abitudine. E sì, ho associato le funzioni di utilità comuni alle variabili locali per la velocità. Grazie per il contributo però.