Jaki jest najbardziej efektywny sposób określenia, czy tabela jest pusta (to znaczy, że obecnie nie zawiera wartości w stylu tablicowym ani w stylu dyktowania)?
Obecnie używam next()
:
if not next(myTable) then
-- Table is empty
end
Czy jest bardziej efektywny sposób?
Uwaga: #
Operator nie jest tutaj wystarczający, ponieważ działa tylko na wartościach tablicowych w tabeli - dlatego #{test=2}
jest nie do odróżnienia, #{}
ponieważ oba zwracają 0. Zwróć również uwagę, że sprawdzenie, czy zmienna tabeli jest nil
niewystarczające, ponieważ nie szukam wartości zerowe, ale raczej tabele z 0 wpisami (tj {}
.).
false
nie byłby to oczekiwany klucz, więcif not
zadziałało dobrze, ale prawdopodobnie będę miał nawyk porównywania gonil
w przyszłości, po prostu jako dobry nawyk. I tak, powiązałem typowe funkcje narzędziowe z lokalnymi zmiennymi w celu zwiększenia szybkości. W każdym razie dziękuję za wkład.