所以我正在阅读一些代码,我看到了一个尾随闭包,根据我的理解和一些谷歌搜索,当你有一个最终参数作为闭包时似乎使用了尾随闭包,所以你可以将它作为尾随闭包传递。
这就是让我困惑的地方。 我有一个 A 类和一个 B 类。B 类继承自 A 类。在 A 类中,有一个函数 C 如下所示:
func C(text1: String, text2: String) -> SomeOddType{...}
现在在B类中,它覆盖了这个函数,但是主体是这样的:
override func C(text1: String, text2:String) -> SomeOddType{
if let someVar = super.C(text:text1, text:text2){
//some code that's not in the super method
return someVar
}
}
那有什么作用???我感到很困惑。它没有闭包作为参数,并且由于它已经在调用 super 方法,覆盖版本中的代码是实现的附加组件?
最佳答案
这里没有尾随闭包,它只是一个if
语句 block 。表达式 super.C(text: text1, text: text2)
有条件地绑定(bind)到新常量 someVar
。如果条件绑定(bind)成功,它会运行“//某些不在 super 方法中的代码”代码块。
关于swift - 在 Swift 中关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52317638/