嵌套函数的好处是什么(一般来说/在Swift中)

时间:2015-05-20 15:49:06

标签: function swift conventions code-organization nested-function

我刚刚学习了一些Swift,而且我遇到了关于嵌套函数的部分:

  

可以嵌套函数。嵌套函数可以访问外部函数中声明的变量。您可以使用嵌套函数在长或复杂的函数中组织代码。

来自here

因此,如果声称的好处是组织代码",为什么不在外部函数之外独立地拥有嵌套函数?对我而言,这似乎更有条理。

我能辨别的唯一好处是你可以访问在外部函数中声明的变量",但与嵌套函数的混乱相比,这似乎微不足道。

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

  

因此,如果声称的好处是组织代码",为什么不在外部函数之外独立地拥有嵌套函数?对我而言,这似乎更有条理。

哦,我完全不同意。如果需要第二个函数的唯一地方是在第一个函数内部,那么将它保持在第一个函数中是很多更有条理。

此处的现实示例:http://www.apeth.com/swiftBook/ch02.html#_function_in_function

另外,函数中的函数具有范围内的本地环境。嵌套函数中的代码可以"参见"在嵌套函数声明之前声明的局部变量。这比传递一堆参数更方便和自然。

然而,本地函数允许你以任何其他方式做的事情是你可以实时形成函数(因为函数是一个闭包)并从外部函数返回。

http://www.apeth.com/swiftBook/ch02.html#_function_returning_function

答案 1 :(得分:1)

一个非常好的事情是Xcode会在函数弹出窗口中缩进其父函数中的嵌套函数。使用与重新计算缩进布局相关的函数导航函数弹出窗口更加容易,并且所有函数都集中在一个位置。

image