2016-04-29 42 views
0

以下示例将扩展此swift-evolution链接中显示的示例,该链接仅为每个参数列表描述一个参数。任何关于如何解决两个参数参数列表的建议?如何在Swift中修复这个curried函数?

// Before: (yields warning) 
func curried(x: Int)(y: String, z:String) -> Float { 
    return Float(x) + Float(y)! + Float(z)! 
} 

// After: (this is not working) 
func curried(x: Int) -> (String, String) -> Float { 
    return {(y: String, z: String) -> Float in 
     return Float(x) + Float(y)! + Float(z)! 
    } 
} 

Xcode 7.3仍然报告第二种方法:“未来版本的Swift中将删除Curried函数声明语法;使用单个参数列表”。

任何帮助表示赞赏。

+0

无法重现。第二种方法编译时没有警告,在Xcode 7.3中按预期工作。 –

+0

@MartinR 7.3中存在一个错误,即使代码已修复,警告也不会消失。他可能会粘贴第一个版本,得到警告,将其替换为第二个版本,并得到旧警告仍然存在的错误。因此我的答案在下面。 – matt

回答

1

忽略关于第二个版本的Xcode 7.3警告。如果清理构建文件夹,警告可能会消失。更重要的是,第二个版本确实是的工作 - 它在Swift 3中编译,这是重要的。

+0

天哪,它确实有效。上面的示例代码是一个更大的方法的蒸馏版本,我试图修复它,看起来我做了 - 只需清理构建(彻底)。 – Christopher