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

第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)上。

主站蜘蛛池模板: 长海县| 灵武市| 博野县| 德化县| 台中市| 长汀县| 玉溪市| 丰宁| 永定县| 都江堰市| 西平县| 武安市| 隆子县| 孟村| 思茅市| 永仁县| 聂荣县| 景东| 任丘市| 松阳县| 竹山县| 视频| 平顺县| 克什克腾旗| 武隆县| 桃江县| 汕尾市| 固始县| 城口县| 叶城县| 广河县| 贵港市| 鄂托克旗| 桦南县| 隆化县| 长沙县| 若羌县| 汤阴县| 平泉县| 临邑县| 神池县|