- 跟戴銘學(xué)iOS編程:理順核心知識(shí)點(diǎn)
- 戴銘
- 756字
- 2024-01-19 15:19:44
第1章
Swift
1.1 Swift簡介
使用Swift這門編程語言可以開發(fā)iOS、macOS、Linux server-side、云服務(wù),甚至TensorFlow的程序。這門語言包含了很多現(xiàn)在開發(fā)者喜歡的語言特性,通過引入這些先進(jìn)的語法概念,Swift可以使代碼編寫更加簡潔,更容易編寫出思路新穎的代碼。這些特性包含了閉包和函數(shù)指針的統(tǒng)一、多返回值、泛型、支持方法、擴(kuò)展和協(xié)議的結(jié)構(gòu)體、函數(shù)編程模式等。蘋果公司希望Swift能夠成為C語言、C++和Objective-C的繼承者,所以既讓它具有了像類型、控制流和運(yùn)算符一樣的Low-Level Primitives特性,又讓它具備了面向?qū)ο蟮囊恍└呒?jí)特性。例如Module提供了命名空間,去掉了頭文件,并且提供了do、guard、defer和repeat等具有創(chuàng)意的語法關(guān)鍵字和規(guī)則。
Swift是一種多范式(Multi-paradigm)的編程語言,可以使用面向?qū)ο蠛秃瘮?shù)式的方式來寫程序,如面向協(xié)議編程、直接操作內(nèi)存等。像C語言那樣進(jìn)行低層級(jí)的位操作,但是這種操作在編譯環(huán)節(jié)不容易檢查,不安全、容易出錯(cuò),所以這種操作又具有“unsafe”特性,一般只在與C語言交互時(shí)使用。
Swift作為一個(gè)強(qiáng)類型語言,在編譯時(shí)推斷完類型之后,變量和參數(shù)等都會(huì)有確定的類型,并且在編譯時(shí)有著比Objective-C更嚴(yán)格的靜態(tài)類型檢查機(jī)制。這樣的設(shè)計(jì)是為了使代碼更加安全。為了安全,Swift要求變量在使用前必須初始化。Swift的編譯器會(huì)阻止生成并避免使用nil對(duì)象。如果使用nil對(duì)象是必要的,那么可以使用Swift中的optional功能。optional里包含了nil對(duì)象。Swift定義了一個(gè)“?”語法,該語法會(huì)在編譯時(shí)強(qiáng)制開發(fā)者處理值為nil的情況,讓你確認(rèn)已安全處理了這個(gè)值。通過LLVM編譯器優(yōu)化,Swift的構(gòu)建速度非常快。
Swift已經(jīng)開源,源代碼、bug追蹤器和郵件列表都能在Swift.org上找到。這個(gè)開源項(xiàng)目包含了一系列的子項(xiàng)目,包括Swift編譯器命令行工具、標(biāo)準(zhǔn)庫、高級(jí)功能的核心庫、Swift REPL的LLDB調(diào)試器,以及用于分發(fā)和構(gòu)建源代碼的包管理工具(Swift Package Manager)。開源后的Swift獲得了更多的貢獻(xiàn)者,使得它能在更多平臺(tái)和技術(shù)社區(qū)里運(yùn)用起來,并且能夠移植到更多的非蘋果公司的平臺(tái)上。

- OpenDaylight Cookbook
- Learning Selenium Testing Tools with Python
- 程序員數(shù)學(xué):用Python學(xué)透線性代數(shù)和微積分
- Learning Bayesian Models with R
- Python Geospatial Development(Second Edition)
- 3D少兒游戲編程(原書第2版)
- SAP BusinessObjects Dashboards 4.1 Cookbook
- Mastering Linux Network Administration
- Node.js Design Patterns
- Mastering Akka
- Python程序設(shè)計(jì)與算法基礎(chǔ)教程(第2版)(微課版)
- Illustrator CC平面設(shè)計(jì)實(shí)戰(zhàn)從入門到精通(視頻自學(xué)全彩版)
- 零基礎(chǔ)學(xué)C語言(升級(jí)版)
- Tableau Dashboard Cookbook
- JSP應(yīng)用與開發(fā)技術(shù)(第3版)