You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何contains方法无法匹配包含列表子串的failedRecord.record?

问题原因与解决方案

核心问题

你写的逻辑搞反了!
当前代码validValueType.ValueTypeGroup.contains(failedRecord.record)是在判断:完整的failedRecord.record字符串是不是ValueTypeGroup列表中的某一项。但你的需求是检查ValueTypeGroup里的任意子串是否存在于failedRecord.record中,两者完全是反向逻辑。

ValueTypeGroup里的元素是"\"is_enabled\": false"、"\"value\":\"OUT\""这种短子串,而failedRecord.record是一整段JSON字符串,显然完整的JSON不会出现在短子串列表里,所以每次都会进入else分支。

修正代码

把判断逻辑改成遍历ValueTypeGroup,检查是否有任意一个元素是failedRecord.record的子串,用Kotlin的any函数就能实现:

fun publishAlert(failedRecord: Record<String>) {
    if (validValueType.ValueTypeGroup.any { failedRecord.record.contains(it) }) {
        // 执行操作
    } else {
        // 无匹配,执行其他操作
    }
}

或者更简洁的写法:

if (validValueType.ValueTypeGroup.any { it in failedRecord.record }) {
    // 执行操作
}

这样就能正确判断failedRecord.record是否包含列表中的任意子串了。

内容的提问来源于stack exchange,提问作者AnthonyEdwardsStan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:05:20