¿Cuál es la forma más eficiente de determinar si una tabla está vacía (es decir, actualmente no contiene ni valores de estilo de matriz ni valores de estilo dict)?
Actualmente, estoy usando next()
:
if not next(myTable) then
-- Table is empty
end
¿Existe una forma más eficiente?
Nota: El #
operador no es suficiente aquí, ya que solo opera en los valores de estilo de matriz en la tabla; por lo tanto, #{test=2}
es indistinguible de #{}
porque ambos devuelven 0. También tenga en cuenta que verificar si la variable de la tabla es nil
no es suficiente porque no estoy buscando valores nulos, sino tablas con 0 entradas (es decir {}
).
false
no sería una clave esperada, por lo queif not
funcionó bien, pero probablemente me acostumbré a compararnil
en el futuro, solo como un buen hábito. Y sí, he estado vinculando funciones de utilidad comunes a vars locales para mejorar la velocidad. Sin embargo, gracias por la entrada.