Qual é a maneira mais eficiente de determinar se uma tabela está vazia (ou seja, atualmente não contém valores de estilo de matriz nem valores de estilo de dict)?
Atualmente, estou usando next()
:
if not next(myTable) then
-- Table is empty
end
Existe uma maneira mais eficiente?
Nota: O #
operador não é suficiente aqui, pois ele opera apenas nos valores de estilo de matriz na tabela - portanto, #{test=2}
é indistinguível #{}
porque ambos retornam 0. Observe também que verificar se a variável da tabela é nil
não é suficiente, pois não estou procurando valores nulos, mas sim tabelas com 0 entradas (ou seja {}
).
false
não seria uma chave esperada, entãoif not
funcionou bem, mas provavelmente terei o hábito de compararnil
no futuro, apenas como um bom hábito. E sim, tenho vinculado funções de utilitário comuns a vars locais para aumentar a velocidade. Obrigado pela contribuição.