[英]Closure in Swift?
因此,我正在閱讀一些代碼,並從我的理解和一些谷歌搜索中看到了尾隨閉包,當您將最終參數作為閉包時,似乎使用了尾隨閉包,因此您可以將其作為尾隨閉包進行傳遞。
這就是讓我困惑的地方。 我有一個類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
語句的塊。 表達式super.C(text: text1, text: text2)
有條件地綁定到新常量someVar
。 如果條件綁定成功,它將運行“ //某些不在超級方法中的代碼”代碼塊。
super.C(text:text1, text:text2)
返回SomeOddType
,但是它應該是可選的。 它分配給someVar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.