如何在If let语句中展开



如果对象不是nil,我将使用if let来获取对象。但我也需要检查其他条件,即是否为"treatmentContext.patientTreatment.canWritePermissions.contains(treatmentContext.pathPatientTreatment.owner"。我可以通过在第一个语句后面加逗号来做到这一点,但这里的问题是,我需要打开treatmentContext.pathPatientTreatment.owner的值,而这里我不知道我需要在哪里打开它,这样当我的if条件满足所有条件时,它就会通过。以下是供参考的代码。

if let treatmentContext = IoC.resolve(Treatment.self, from: .treatment), treatmentContext.patientTreatment.canWritePermissions.contains(treatmentContext.pathPatientTreatment.owner) 
{
self.presentNavigation(isNew: isNew)
}

您已经知道可以用,分离条件,所以只需再次这样做,但这次是另一个可选的绑定子句:

if let treatmentContext = IoC.resolve(Treatment.self, from: .treatment), 
let owner = treatmentContext.pathPatientTreatment.owner,
treatmentContext.patientTreatment.canWritePermissions.contains(owner) {
self.presentNavigation(isNew: isNew)
}

您可以在if.中用,分隔任意数量的可选绑定子句、Bool条件或case ...模式

最新更新