嵌套函数在swift中的实际用途是什么?

嵌套函数在swift中的实际用途是什么?,第1张

概述参见英文答案 > What is the benefit of nesting functions (in general/in Swift)                                    3个 嵌套函数的实际用途是什么?它只会使代码更难阅读,并且不会使特定情况变得容易. func chooseStepFunction(backwards: Bool) -> (Int) - 参见英文答案 > What is the benefit of nesting functions (in general/in Swift)3个
嵌套函数的实际用途是什么?它只会使代码更难阅读,并且不会使特定情况变得容易.
func chooseStepFunction(backwards: Bool) -> (Int) -> Int {    func stepForward(input: Int) -> Int { return input + 1 }    func stepBackward(input: Int) -> Int { return input - 1 }    return backwards ? stepBackward : stepForward}

Source

我认为你的问题的核心是:为什么不使用私有函数而不是丑陋的嵌套函数?

简而言之,嵌套函数可以带来更多的可读性和封装

仍然可以从类中的其他函数访问私有函数.嵌套函数也不是这样.你告诉你的开发人员,这只属于这个函数(与属于整个类的私有函数相反).退一步,不要乱用它,如果你需要类似的功能,那就去写吧!

另一个便利是它可以访问其父函数的所有本地参数.你不再需要传递它们.这最终意味着要测试一个较少的函数,因为你已经将一个函数包装在另一个函数中

另一个用例就是你班上的功能非常相似,比如你有:

extractAllHebrewnames() // right to left languageextractAllAmericannames() // left to right languageextractAllJapanesenames() // top to bottom language

现在,如果您有一个名为printname的私有函数(打印名称),如果您根据语言切换案例,它将起作用,但如果您不/不能这样做会怎样.相反,您可以在每个单独的提取函数内编写自己的嵌套函数*并打印名称.

你的问题有点类似,为什么不使用’if else’而不是’Switch case.

我认为这只是一种便利(对于可以在不使用嵌套函数的情况下处理的东西).

注意:嵌套函数应该在函数内的callsite之前写入.

错误:在声明之前使用局部变量’nested’

func doSomething(){    nested()    func nested(){    }}

没错误:

func doSomething(){    func nested(){    }    nested()}

类似地,必须在嵌套函数之前声明嵌套函数中使用的局部变量

*:他们现在都可以拥有完全相同的名字.因为每个都在不同的命名空间.

总结

以上是内存溢出为你收集整理的嵌套函数在swift中的实际用途是什么?全部内容,希望文章能够帮你解决嵌套函数在swift中的实际用途是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1027255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存