2016-04-29 16 views
0

次の例は、このswift-evolutionリンクに示されている例を展開しています。この例では、引数リストごとに1つのパラメータしか記述されていません。 2つのパラメータ引数リストを修正する方法に関する提案はありますか?Swiftのカレー機能を修正するには?

// 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では、「Curried関数の宣言構文は、今後のバージョンのSwiftでは削除され、単一のパラメータリストを使用する」と報告されています。

助けてください。

+0

再生できません。 2番目の方法は、警告なしでコンパイルし、Xcode 7.3で期待どおりに動作します。 –

+0

@MartinR 7.3で、コードが修正されても警告が消えないバグがあります。彼はおそらく、最初のバージョンに貼り付け、警告を出し、それを2番目のバージョンに置き換え、古い警告が残っているバグを得ました。したがって私の答えは以下の通りです。 – matt

答えて

1

2番目のバージョンについてのXcode 7.3の警告を無視してください。ビルドフォルダをクリーンアップすると、おそらく警告が消えてしまいます。さらに重要なのは、2番目のバージョンです。スウィフト3でコンパイルされます。これはすべて重要です。

+0

ああ、うまくいきます。上記のサンプルコードは、私が修正しようとしているより大きなメソッドの蒸留バージョンです。ビルド(完全に)を取り除く必要があります。 – Christopher

関連する問題