Hello!
2012/11/4 junwei shi:
> local id = ndk.set_var.set_quote_sql_str(id); //假设id为‘1’
> ngx.say(type(id));
> ngx.say(tonumber(id));
>
> 我预期的结果是 stirng 1,但是实际结果为string nil。
> 为什么这里的string不能成功转换为int?
>
因为 id 这个字符串在经过 quote 之后,其第一个字符是单引号字符('),而不是合法的数字字符。换言之,在这里
ndk.set_var.set_quote_sql_str 给字符串加上了单引号,于是上例中的 [[1]] 就变成了 [['1']].
所以你其实是在执行这样的代码:
id = [['1']]
ngx.say(type(id))
ngx.say(tonumber(id))
Best regards,
-agentzh