簡體   English   中英

在Swift中關閉?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM