功能方面与雨燕可选完成块
问题描述:
当我创建了一个功能,我可以做一个参数可选给它一个默认值,比如:功能方面与雨燕可选完成块
func foo(bar: String = "foobar") {}
我想要做的是相同的(使可选)与完成块。我试过以下内容:
func foo(completionBlock: (foo: String) ->() =() ->())
func foo(completionBlock: (foo: String) ->() = (foo: String) ->())
func foo(completionBlock: (foo: String) ->() = ((foo: String) ->()))
func foo(completionBlock: (foo: String) ->() = ((foo: String) in))
func foo(completionBlock: (foo: String) ->() = {(foo: String) in})
我该怎么做?
编辑:
这是/是一个重复的问题,对不起。但是,我无法在原始问题中找到解决方案。所以Nathan的回答是最好的一个
答
在斯威夫特3:
func foo(completionBlock: (String) ->() = { _ in }) {}
答
如果你想默认为nil
:
func foo(completionBlock: ((String) ->())? = nil) {
}
如果你想提供一个默认的完成块:
func defaultCompletionBlock(foo: String) {
}
func foo(completionBlock: ((String) ->()) = defaultCompletionBlock) {
}
这不需要为completionBlock @escaping,因为它是从Swift3.0隐式不转义? – Cyrus