2015-10-12 101 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