3
我在看一些Swift
代碼,我已經遇到這個函數簽名:Swift中的表達式() - >()= {}是什麼意思?
func foo(withCompletion completion: @escaping() ->() = {}) { ... }
我不知道是什麼部分() ->() = {}
是什麼意思? 如果它是一個默認值,它應該如何使用?
有什麼想法?
該代碼是Swift 3
我在看一些Swift
代碼,我已經遇到這個函數簽名:Swift中的表達式() - >()= {}是什麼意思?
func foo(withCompletion completion: @escaping() ->() = {}) { ... }
我不知道是什麼部分() ->() = {}
是什麼意思? 如果它是一個默認值,它應該如何使用?
有什麼想法?
該代碼是Swift 3
的completion
參數具有一個類型的() ->()
。這是一個閉包,沒有參數並且有一個空的(void)返回類型。
= {}
是參數的默認值,意思是如果您不需要在閉包中實際需要傳遞該參數。
foo(withCompletion: {
// your code here
})
或(使用後關閉語法):
,因此您可以調用這個
foo() {
// your code here
}
或者(如果你不想使用完成關閉):
foo()
它是一個返回void的函數。在這種情況下,函數是空{}。默認情況下不做任何事情。只要返回void就可以添加回調函數。 –
...並沒有任何參數。 –
它可能被重構爲可選項並設置爲nil,而不是空的閉包實現。 – JAL