【发布时间】:2018-09-13 16:04:02
【问题描述】:
所以我正在阅读一些代码,我看到一个尾随闭包,根据我的理解和一些谷歌搜索,当你有一个最终参数作为闭包时,似乎使用尾随闭包,因此你可以将它作为尾随闭包传递。
这让我很困惑。 我有一个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
}
}
这是做什么的???我感到很困惑。它没有闭包作为参数,并且由于它已经调用了超级方法,覆盖版本中的代码是实现的附加组件?
【问题讨论】:
-
你的问题中的闭包在哪里?
-
@RakeshaShastri 在 someVar 线上。我认为这是一个封闭的权利?使用 {} 调用函数后
-
@RakeshaShastri 它跑了。 NVM 我现在明白了。这是一个 if let... SO if 语句,该块属于 if。我的错。没有意识到它正在展开。
-
哎呀 我得到了洞见,认为这是某种关闭。 @_@
-
请尝试改进您的问题标题 - 阅读 How to Ask 寻求帮助