Как-то глупо получается. Вроде, если нет значения, то nil.
Но вот использую openresty-redis - если нет значения в редисе, вернется userdata "nil", который не нил, а тру, а если не повезет - еще и ошибку выбросит - потому что неподдерживаемый тип данных.
В другом месте пришлось подключиться к мемкэш... Тот, если нет значения вернет... Нет, не nil, и не "userdata: nil", а "userdata: null". Как с таким вот работать? Сейчас набросал хэлпер, который проверяет истинность, а потом проверяет на схожесть стркоовых представлений. А вдруг еще добавится источник данных, который еще один непонятный тип данных будет возвращать?
В чистом Lua только nil, если подключаете другие сервисы, то каждый нужно специально обрабатывать. Без хелперов не обойтись. В данном случае проблема не языка, а обёрток редиса и мемкэша.