Lua中的字符串比较失败

时间:2014-11-12 11:16:33

标签: string lua string-comparison

我正在尝试为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的专家,所以可能是我错过了一些明显的东西。谁能看到它是什么?

1 个答案:

答案 0 :(得分:1)

    s = s .. ifname .. "=" .. v.name .. '?'
    if iface == v.name then

您在比较中使用的是iface,而不是ifname。如果变量之前没有给出值,则其值为nil,但没有给出错误,因为它是合法的Lua。