Swift

★ 学习笔记:《iOS高级:Swift入门精讲②》第一节 Swi

2019-07-26  本文已影响0人  麦穗0615

前言:

本篇仅为视频学习笔记

嵌套函数(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什么的。那么像这种情况的话,你就可以将函数定义在另外一个函数里面,通过外层函数来间接调用里面的函数。里面可能会有一些流程控制,去控制你去调用哪个家伙

上一篇下一篇

猜你喜欢

热点阅读