★ 学习笔记:《iOS高级:Swift入门精讲②》第一节 Swift编程-01➡12 嵌套函数

前言:

本篇仅为视频学习笔记

嵌套函数(Nested Function)

★ 将函数定义在函数内部

 func forward(_ forward: Bool) -> (Int) -> Int {
    
     
     func next(_ input: Int) -> Int {
         return input + 1
     }
     
     func previous(_ input: Int) -> Int {
         return input - 1
     }
     
     return forward ? next : previous
 }
 
 forward(true)(3)  // 4
 forward(false)(3) // 2

我们看这个forward函数,它返回值类型是 (Int) -> Int 函数类型,next和previous函数,是符合条件的,而且这两个呢,我只会用在forward里面,我完全可以将这两个函数定义在forward里面。

那么,到时候根据传进来的布尔类型Bool来决定返回谁,外面只需要传参拿到这两个函数直接用就可以了,那就相当于外面就不能直接调用next和previous这两个函数了,只能通过forward函数,来间接调用next跟previous。

如果你开发中有什么需求,你希望某些函数的,不希望被外面直接调用。说白了,你现在是不希望外面直接调用next什么的。那么像这种情况的话,你就可以将函数定义在另外一个函数里面,通过外层函数来间接调用里面的函数。里面可能会有一些流程控制,去控制你去调用哪个家伙

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容