【发布时间】:2017-05-13 08:06:57
【问题描述】:
首先,我寻找一种通过为协议函数提供默认参数值来简化编码的方法。我采用了here 的解决方案,然后发现它可能带来一些致命的子序列:
protocol Foo {
func foo(_ a: Int)
}
extension Foo {
func foo(_ a: Int = 4) {
foo(a)
}
}
struct FooImpl: Foo {
// empty implementation
}
FooImpl().foo() // will go recursively forever and finally reach the stack limit
我还发现这段代码在IBM Swift Sandbox 中编译失败,因此假设xcode 编译器可能是罪魁祸首。
【问题讨论】:
-
评论是你得到的编译器错误吗?
标签: swift xcode protocol-extension