我正在重构一个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