官术网_书友最值得收藏!

第5章 函數與閉包技術

所謂科學,包括邏輯和數學在內,都是有關時代的函數,所有科學連同它的理想和成就統統都是如此。

——穆爾

任何復雜的系統都是由許多簡單的系統組合演化而來的,在編程中更是如此,任何復雜的功能都是由一些簡單的功能組合演化而來的。函數是高級語言共有的代碼特性,在數學中,函數是一種特定的算法映射,自變量的改變將引起因變量的改變。在編程中,函數的實質是完成特定功能的代碼塊,只是此代碼塊有一個名稱,開發者可以通過函數名來調用函數完成特定的需求和功能。

Swift語言中提供了十分靈活的方式來創建和調用函數。實際上,在Swift語言中,每個函數都有特定的類型,函數的類型取決于參數和返回值。另外,在Swift語言中函數可以進行嵌套。

閉包的功能與函數類似,其也是有一定功能的代碼塊,在Objective-C語言中,與之相似的語法結構被稱為block結構。閉包與函數有著密不可分的關系:函數是有名稱的功能代碼塊,閉包在大多數情況下是沒有名稱的功能代碼塊,在語法結構上,閉包與函數有著很大的差異。由于對閉包語法的支持,Swift語言更加強大而靈活。本章將向讀者介紹在Swift語言中閉包結構的應用與簡化技巧。

通過本章,你將學習到:

  • 函數的創建與調用。
  • 函數的類型與嵌套。
  • 函數的inout參數。
  • 編寫可變參數函數。
  • 了解閉包的應用場景及設計思路。
  • 對閉包結構進行簡化。
  • 特定條件下使用后置閉包。
  • 逃逸與非逃逸閉包的應用。
  • 自動閉包的應用。
主站蜘蛛池模板: 河北区| 宜春市| 德兴市| 彰化县| 井冈山市| 洞口县| 长白| 二手房| 抚远县| 崇州市| 安塞县| 阳朔县| 高要市| 汝南县| 抚州市| 门头沟区| 静安区| 太谷县| 南涧| 南川市| 崇明县| 旬邑县| 新津县| 依安县| 贺州市| 虎林市| 万安县| 普兰县| 敦化市| 黑山县| 金昌市| 睢宁县| 美姑县| 交城县| 玉溪市| 永康市| 来宾市| 青铜峡市| 会昌县| 察雅县| 卓资县|