国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

swift 函數(shù)嵌套

2019-11-09 17:54:00
字體:
供稿:網(wǎng)友

在swift 里面這個函數(shù)嵌套是我理解起來有點稍微難受的知識點,記錄下

還是用那個最經(jīng)典的例子來看一下

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}var currentValue = -4let moveNearerToZero = chooseStepFunction(backwards: currentValue > 0)while currentValue != 0 {    PRint("/(currentValue)... ")    currentValue = moveNearerToZero(currentValue)}一般函數(shù)看起來如果有返回值的時候,格式是這個樣子的

func 方法名字(參數(shù))-> 返回類型 {里面的一些運算}

而這個嵌套的函數(shù)在返回類型里是這樣子的 (Int)-> Int 抽出來不難理解,這個就是(參數(shù))-> 返回類型 ,這就是個發(fā)育不良的函數(shù)格式,在程序里面呢,要把它看做一個整體理解。我只需知道,通過最外面的函數(shù)返回的東西還是個函數(shù)。

就像我們上面的例子一樣

let moveNearerToZero = chooseStepFunction(backwards: currentValue > 0)這個moveNearerToZero就是個函數(shù)。

往里面第一個函數(shù)choose里面看,發(fā)現(xiàn)不簡單,竟然又有兩個函數(shù),都是完全形態(tài),有參數(shù),有返回值,放在外面也可以獨立生活。我們不用管,只需要外面的返回函數(shù)類型,和里面要用的一直就好了。其實他們就是一個,往下看就一目了然了。

 return backwards ? stepBackward : stepForward返回的是存在函數(shù)里的兩個函數(shù)名,條件滿足哪個就返回哪個,上面的moveNearerToZero接收了,再運行就是里面的函數(shù)了

多個嵌套的話也是一樣的流程


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永济市| 长阳| 融水| 白银市| 兰西县| 东乡族自治县| 云安县| 独山县| 江陵县| 阜平县| 老河口市| 阳泉市| 二连浩特市| 昌宁县| 松潘县| 民权县| 建瓯市| 法库县| 丁青县| 郴州市| 浙江省| 陇西县| 揭东县| 宁河县| 清丰县| 安塞县| 普安县| 突泉县| 察雅县| 兴文县| 湟中县| 多伦县| 绥中县| 白山市| 鄂托克前旗| 兴海县| 蕲春县| 太仆寺旗| 青河县| 金秀| 上虞市|