错误使Guard语句Swift



请考虑以下:

let isHaveSn = model.positions.contains {$0.assortment?.isSerialTrackable == true}
guard isHaveSn else {
return
}

ishavesn产品布尔,所以我检查了守卫中的布尔,一切都起作用。但是我想这样简化这一点:

 guard model.positions.contains {$0.assortment?.isSerialTrackable == true} else {
                return
            }

它会产生多个错误,其中一些错误:预期表达或连续的语句应由;

分开。

但我只是复制:

的右侧
let isHaveSn = model.positions.contains {$0.assortment?.isSerialTrackable == true}

为什么我的代码不编译?

正确的语法是:

guard model.positions.contains(where: {$0.assortment?.isSerialTrackable == true}) else {
    return
}


实际上,有一项迅速发展的提议,要求在被拒绝的后卫陈述中进行尾声。您可以在此处阅读有关它的更多信息