使用lua函数作为条件的麻烦

时间:2015-10-10 23:47:06

标签: lua

我正在重构一个lua wireshark解剖器,我在使用函数作为条件时遇到了麻烦。

这有效:

-- define heuristic 
local function protocol_heuristic(buffer, packet, parent)

   -- min header length required
    if buffer:len() < 23 then
        return false
    end

这不是:

-- verify header
local function valid_packet_length(buffer)
    if buffer:len() > 23 then
        return true
    end

    return false
end

-- define heuristic 
local function protocol_heuristic(buffer, packet, parent)

    -- min header length required
    if not valid_packet_length(buffer) then
        return false
    end

我已尝试过&#39;,== true和其他一些迭代。能够清理代码的方法将非常有用,因为它使源更通用,因此更容易自动生成。条件在本地函数内部工作,因此存在语法错误或者我不理解lua函数和返回值的性质。在此先感谢您的帮助。

有效的东西:

local is_valid_packet_length = valid_packet_length(buffer) 
if not is_valid_packet_length then return false end

0 个答案:

没有答案