2
您可以将下面的代码放入游乐场。没有拖尾关闭支持具有默认参数值的方法吗?
import UIKit
class MyClass {
func foo(a: String, b:() ->()) {
b()
}
func bar(a: String = "a", b:() ->()) {
b()
}
}
let object = MyClass()
object.foo("x") {() ->() in
println("foo")
}
object.bar() {() ->() in
println("foo")
}
object.bar()
调用产生Missing argument for parameter 'b' in call
的问题是:我做错了什么,或尾随关闭未在使用默认参数值的方法支持?
好点。谢谢。我会等一下,除非有人想出更多的东西,我会接受你的答案。你认为这是缺少的功能还是缺陷? – 2014-12-06 15:13:14
考虑到没有外部名称的情况不适用于闭包,我会考虑非尾随情况的错误。好像编译器试图用默认值将闭包分配给第一个参数,忽略它的类型。至于后面的情况,我不知道......这可能是一种想要的行为,但没有记录。 – Antonio 2014-12-06 15:29:55