lua 判断为空的逻辑

在查询数据库时,有可能字段数据为空,所以自然想到这样的逻辑

 ....

  local publish_total_count = rows[i].PUBLISH_COUNT;

....
if publish_total_count ==nil then
yx_new_table.submit_info = ngx.encode_base64("0/0");
else
yx_new_table.submit_info = ngx.encode_base64(submit_count.."/"..publish_total_count);
end

但是总是在publish_total_count 为空时 执行第二句。

问了一下同事,要修改为
if not publish_total_count then
yx_new_table.submit_info = ngx.encode_base64("0/0");
else
yx_new_table.submit_info = ngx.encode_base64(submit_count.."/"..publish_total_count);
end

其中 not publish_total_count 表示publish_total_count 为空的时候才执行 yx_new_table.submit_info = ngx.encode_base64("0/0");
原因在lua中 nil和false返回值都是假 
原文地址:https://www.cnblogs.com/wangzhitie/p/5208917.html