カリー化デモのSWIFT

FUNC baseFunc(行き:文字列、グー:文字列) - >文字列{

        + +グーを行く「hello」を返します。

    }

    

    FUNC CurryFunc(baseFun:@escaping(文字列、文字列) - >文字列) - >(文字列) - >(文字列) - >文字列{

        FUNC returnFun(その他:文字列) - >(文字列) - >文字列{

            FUNC inReturnFun(内側:文字列) - >文字列{

                baseFun(他の、内側)を返します。

            }

            inReturnFunを返します。

        }

        

        returnFunを返します。

    }

 

       聞かせてE = self.CurryFunc(baseFun:baseFunc)( "拳");

        

        印刷工程;(e)

        

        せ、X = self.CurryFunc(baseFun:baseFunc)( "拳")( "otehr")。

        

        プリント(X)。

        

        =手放すself.CurryFunc(baseFun:{(a、b)は - >文字列で

            + bを返します。

        });

 

電子() - >()0x0000000105848190 FunctionGoo`partialためフォワーダを適用

 inReturnFun#1(内部:Swift.String) - > Swift.String

returnFun#1における(他:Swift.String) - >(Swift.String) - > Swift.String

FunctionGoo.ViewController.CurryFunc中(baseFun:(Swift.String、Swift.String) - > Swift.String) - >(Swift.String) - >(Swift.String) - > Swift.String

で、<コンパイラで生成されました>

おすすめ

転載: www.cnblogs.com/feng9exe/p/11365749.html