在学习swift的时候,对于简单的函数很好理解,可是对于那种跟了一大堆返回东东的函数,初学者可能一开始不好理解(注意是初学者哦,对于大佬就不用看了),比如说柯里化(Currying),我用的这个函数是喵神书中写的一个函数(如图一所示)

我们先看看这个addTo()这个函数,对于初学者来说,这个函数后面都是跟着一些什么啊,再往下面一看,里面有两个return,而且这个第一个return里面的这个num参数是什么?,一头雾水。
让我们来仔细分析一下这个函数,addTo()这个函数其实返回的是一个函数,返回的是(Int) -> Int 这个函数,由于闭包函数的使用,让我们看起来这个函数不是那么明显,现在让我们把这个函数还原(如图二)

接下来我们在用闭包把returnResult()这个函数进行一步步简写(如图三到图五)



我们现在可以看到图五已经与刚开始看不懂的图一一模一样了是不是,这就是闭包的魅力,这就是swift的魅力。
网友评论