Lua中字符串比较失败

我正在为 LuCI 编写一个小型扩展,LuCI 是 OpenWrt 使用的 Web 界面。然而,这个问题非常通用,与 LUA 有关。

我有下面的代码:

for k,v in ipairs(nixio.getifaddrs()) do
    if v.family == "packet" then
        s = s .. ifname .. "=" .. v.name .. '?'
        if iface == v.name then
            s = s .. "T\t"
            match = 1
            break
        else
            s = s .. "F\t"
        end
    end
end

每次运行(ifname="lo",但任何情况下都失败),s 字符串打印如下:

lo=lo?F lo=eth0?F   lo=eth1?F   lo=br-lan?F lo=wlan1?F  lo=wlan0?F

我已经对它进行了一些调试,但我仍然没有看到为什么在这种情况下字符串比较不起作用。我不是 LUA 专家,所以可能是我错过了一些明显的东西。有谁能看出来是什么呢?

点赞
用户1009479
用户1009479
s = s .. ifname .. "=" .. v.name .. '?'
if iface == v.name then

您在比较中使用了 iface,而不是 ifname。 如果一个变量在之前没有被赋值,它的值是 nil,但是因为它是合法的 Lua,所以不会出现错误。

2014-11-12 11:24:16