Какой наиболее эффективный способ определить, является ли таблица пустой (то есть в настоящее время не содержит значений в стиле массива или значений в стиле dict)?
В настоящее время я использую next()
:
if not next(myTable) then
-- Table is empty
end
Есть более эффективный способ?
Примечание. #
Оператора здесь недостаточно, так как он работает только со значениями в стиле массива в таблице - поэтому #{test=2}
он неотличим от того, #{}
потому что оба возвращают 0. Также обратите внимание, что проверки, является ли переменная таблицы nil
недостаточной, поскольку я не ищу нулевые значения, а скорее таблицы с 0 записями (т.е. {}
).
false
это не было ожидаемым ключом, поэтому онif not
работал нормально, но я, вероятно, сделаю привычку сравнивать егоnil
в будущем, просто как хорошую привычку. И да, для скорости я привязал общие служебные функции к локальным варам. Тем не менее, спасибо за вклад.