错误使得后卫声明斯威夫特
问题描述:
请考虑以下几点:错误使得后卫声明斯威夫特
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
}
其实有在迅速进化的建议,以使在后卫声明后封口之所以遭到拒绝。你可以阅读more about it here
+0
感谢,但我认为它有点类似于我的错误理解(因为我复制了代码,提供了Bool并将其粘贴到警卫中并且它不起作用)。 –
这是尾随的封闭,让你绊倒。更改为将括号括起来(它实际上是一个函数参数)。 ...'positions.contains(其中:{$ 0' ... – Grimxn