2015-10-12 141 views
0

在swift中,如何用一個可選參數定義一個函數是一個函數? 例如,我有這樣的功能: func test(處理程序:Int - > Void) 我希望參數處理程序是可選的,實際上,這意味着處理程序參數類型應該是可選的函數,所以我應該怎麼做?swift可選參數函數

回答

1

就像任何其他類型一樣。因此,對於非可選:

func test(handler: (Int) -> (Void)) 

可選版本將成爲:

func test(handler: ((Int) -> (Void))?) 

另一種方式思考這個問題,如果我們要創建的處理程序,將是這樣一個typealias

typealias handlerCallback = (Int) -> (Void) 

func test(handler: handlerCallback) // The non-optional version 
func test(handler: handlerCallback?) // The optional version 

我希望這是有道理的

+0

非常感謝你 – YonF

+0

似乎在斯威夫特被打破3.1 –

+0

@StevenKramer編輯。感謝那 :) – Alladinian