对具有默认参数值的函数使用通配符模式会引发编译器254错误



文档中说你可以通过通配符_:

要求Swift不要使用默认参数名作为外部参数
func hello(_ str:String = "Hello with wildcard pattern") {
  println(str)
}
hello("this is my string")

但是我得到一个254试图编译它:

失败,退出代码254(在Xcode 6 beta1和beta2上测试)

但是很明显,当我不带参数调用它时,它工作得很好

然后当我做:hello(str: "this is my string")时,它说str是"无关的"

我做错了什么吗?

如果您需要一个快速的解决方法,您可以通过在函数中添加另一个参数来使其工作,如下所示:

func hello(extra: Int, _ str: String = "Hello with wildcard pattern") {
    println(str)
}
hello(0, "hello")

254错误来自编译器,所以我会向苹果公司提交错误报告。即使不是有效的代码,编译器不应该崩溃,但从我所读到的,你的代码应该工作。

这看起来像是一个编译器错误。现在您可以使用重载来模拟这种行为。

最新更新