Lua 同一个函数中, local 两次定义变量为局部变量,引起变量为空值 nil 的问题
-- 开始读 message 表
if read_type == ">" then
local sql = "select * from message where date ".. read_type .." ".. local_date .. " LIMIT 1"; -- 读 sms 表中,时间戳大于本地存储最后一条短信时间戳的一条短信
end
if read_type == "=" then
local sql = "select * from message where date ".. read_type .." ".. local_date; -- 读 sms 表中,时间戳等于 本地存储最后一条短信时间戳的 所有 短信
end
-- "select * from message where date = 88888888 LIMIT 1"
if is_Debug then
dialog((debug.getinfo(1).currentline)..",sql:".. sql);
end
以上写法,在 dialog((debug.getinfo(1).currentline)..",sql:".. sql); 时,报错 sql 值为 nil。
-- dialog 是触动精灵的屏幕打印函数
改为:
-- 开始读 message 表
local sql = "";
if read_type == ">" then
sql = "select * from message where date ".. read_type .." ".. local_date .. " LIMIT 1"; -- 读 sms 表中,时间戳大于本地存储最后一条短信时间戳的一条短信
end
if read_type == "=" then
sql = "select * from message where date ".. read_type .." ".. local_date; -- 读 sms 表中,时间戳等于 本地存储最后一条短信时间戳的 所有 短信
end
在一开始用 local 定义局部变量,一切正常。
诡异的 Bug