【发布时间】:2021-01-28 08:27:12
【问题描述】:
假设我有一个函数,它的最后一个参数是闭包,所以它可以缩短为这样的:
let reminder = reminders.first { (reminder) -> Bool in
return reminder.mealIdentifier == mealIdentifier
}
太棒了!现在假设我想把它放在guard 语句中,如下所示:
guard let reminder = reminders.first { (reminder) -> Bool in
return reminder.mealIdentifier == mealIdentifier
} else {
continue
}
我这样做的那一刻,编译器开始尖叫。解决方法是在调用函数时不使用尾随闭包短语法,但是当您的最后一个参数是闭包时,Xcode 的默认自动完成没有选项不执行尾随闭包短语法,这很麻烦:
guard let reminder = reminders.first(where: { (reminder) -> Bool in
return reminder.mealIdentifier == mealIdentifier
}) else {
continue
}
这里有什么我遗漏的吗?或者有没有办法让 Xcode 在没有缩短语法的情况下自动完成?
【问题讨论】: