Lua多条件校验函数问题:如何实现全条件满足才返回true?
Lua条件验证函数修复方案
你的代码核心问题是:当检测到不满足的条件时,你设置了valid = false但直接执行return(不带返回值),Lua中这种情况函数会返回nil,而非你预期的false。
修正方案一:直接返回结果(更简洁)
不需要额外的valid变量,一旦发现条件不满足就直接返回false,所有条件通过后返回true:
function UnitScan:validate_cond() if not condition_1 then return false end -- ... 其他条件判断 if not condition_n then return false end return true end
修正方案二:保留valid变量(逻辑更清晰)
如果想保留valid变量的逻辑,需要确保最终返回正确的值,也可以用elseif串联条件减少冗余:
function UnitScan:validate_cond() local valid = true if not condition_1 then valid = false elseif not condition_2 then valid = false -- ... 依次添加其他条件判断 elseif not condition_n then valid = false end return valid end
额外优化:批量检查条件(适合多场景)
如果条件数量较多,可以把所有条件存入表中,通过循环批量验证,代码更易维护:
function UnitScan:validate_cond() local conditions = { condition_1, condition_2, -- ... 填入所有需要验证的条件 condition_n } for _, cond in ipairs(conditions) do if not cond then return false end end return true end
内容的提问来源于stack exchange,提问作者user3713179
相关产品推荐
相关产品推荐

