Swift簡介
Swift,蘋果于2014年WWDC(蘋果開發(fā)者大會)發(fā)布的新開發(fā)語言,可與Objective-C共同運行于Mac OS和iOS平臺,用于搭建基于蘋果平臺的應(yīng)用程序。
Swift是一款易學(xué)易用的編程語言,而且它還是第一套具有與腳本語言同樣的表現(xiàn)力和趣味性的系統(tǒng)編程語言。Swift的設(shè)計以安全為出發(fā)點,以避免各種常見的編程錯誤類別。
2015年12月4日,蘋果公司宣布其Swift編程語言現(xiàn)在開放源代碼。長600多頁的 The Swift Programming Language 可以在線免費下載。
感言
至今swift才剛兩歲,但是但是作為計算機語言家族的新寵,這位磨人的小妖精已經(jīng)吸(gou)引(da)了大批腦殘粉,而作為蘋果開發(fā)者的我們,還有什么理由不趕快去一親芳澤呢,小朋友們,再不開始馬上立刻上車終將被歷史的車輪碾成粉末,so,let us go!
Swift完整學(xué)習(xí)路線
基礎(chǔ)部分-The Basics
常量和變量 聲明常量和變量 類型標(biāo)注 常量和變量的命名 輸出常量和變量 注釋 分號 整數(shù) 整數(shù)范圍 Int UInt 浮點數(shù) 類型安全和類型推斷 數(shù)值型字面量 數(shù)值型類型轉(zhuǎn)換 整數(shù)轉(zhuǎn)換 數(shù)整數(shù)和浮點數(shù)轉(zhuǎn)換 類型別名 布爾值 元組 可選 nil if 語句以及強制解析 可選綁定 隱式解析可選類型 錯誤處理 斷言
基本運算符-Basic Operators
術(shù)語
賦值運算符
算術(shù)運算符
組合賦值運算符
比較運算符
三目運算符
空合運算符
區(qū)間運算符
邏輯運算符
字符串和字符-Strings and Characters
字符串字面量
初始化空字符串
字符串可變性
字符串是值類型
使用字符
連接字符串和字符
字符串插值
Unicode
計算字符數(shù)量
訪問和修改字符串
比較字符串
字符串的 Unicode 表示形式
集合類型-Collection Types
集合的可變性(Mutability of Collections)
數(shù)組(Arrays)
集合(Sets)
字典(Dictionaries)
控制流-Control Flow
For-In 循環(huán)
While 循環(huán)
條件語句
控制轉(zhuǎn)移語句(Control Transfer Statements)
提前退出
檢測 API 可用性
函數(shù)-Functions
函數(shù)定義與調(diào)用(Defining and Calling Functions)
函數(shù)參數(shù)與返回值(Function Parameters and Return Values)
函數(shù)參數(shù)名稱(Function Parameter Names)
函數(shù)類型(Function Types)
嵌套函數(shù)(Nested Functions)
閉包-Closures
閉包表達(dá)式(Closure Expressions)
尾隨閉包(Trailing Closures)
值捕獲(Capturing Values)
閉包是引用類型(Closures Are Reference Types)
非逃逸閉包(Nonescaping Closures)
自動閉包(Autoclosures)
枚舉-Enumerations
枚舉語法(Enumeration Syntax)
使用 Switch 語句匹配枚舉值(Matching Enumeration Values with a Switch Statement)
關(guān)聯(lián)值(Associated Values)
原始值(Raw Values)
遞歸枚舉(Recursive Enumerations)
類和結(jié)構(gòu)體-Classes and Structures
類和結(jié)構(gòu)體對比
結(jié)構(gòu)體和枚舉是值類型
類是引用類型
類和結(jié)構(gòu)體的選擇
字符串(String)、數(shù)組(Array)、和字典(Dictionary)類型的賦值與復(fù)制行為
屬性-Properties
存儲屬性(Stored Properties)
計算屬性(Computed Properties)
屬性觀察器(Property Observers)
全局變量和局部變量(Global and Local Variables)
類型屬性(Type Properties)
方法-Methods
實例方法(Instance Methods)
類型方法(Type Methods)
下標(biāo)腳本-Subscripts
下標(biāo)語法
下標(biāo)用法
下標(biāo)選項
繼承-Inheritance
定義一個基類(Defining a Base Class)
子類生成(Subclassing)
重寫(Overriding)
防止重寫(Preventing Overrides)
構(gòu)造過程-Initialization
存儲屬性的初始賦值
自定義構(gòu)造過程
默認(rèn)構(gòu)造器
值類型的構(gòu)造器代理
類的繼承和構(gòu)造過程
可失敗構(gòu)造器
必要構(gòu)造器
通過閉包或函數(shù)設(shè)置屬性的默認(rèn)值
析構(gòu)過程-Deinitialization
析構(gòu)過程原理
析構(gòu)器實踐
自動引用計數(shù)-Automatic Reference Counting
自動引用計數(shù)的工作機制
自動引用計數(shù)實踐
類實例之間的循環(huán)強引用
解決實例之間的循環(huán)強引用
閉包引起的循環(huán)強引用
解決閉包引起的循環(huán)強引用
可選鏈-Optional Chaining
使用可選鏈?zhǔn)秸{(diào)用代替強制展開
為可選鏈?zhǔn)秸{(diào)用定義模型類
通過可選鏈?zhǔn)秸{(diào)用訪問屬性
通過可選鏈?zhǔn)秸{(diào)用調(diào)用方法
通過可選鏈?zhǔn)秸{(diào)用訪問下標(biāo)
連接多層可選鏈?zhǔn)秸{(diào)用
在方法的可選返回值上進(jìn)行可選鏈?zhǔn)秸{(diào)用
錯誤處理-Error Handling
表示并拋出錯誤
處理錯誤
指定清理操作
類型轉(zhuǎn)換-Type Casting
定義一個類層次作為例子
檢查類型
向下轉(zhuǎn)型(Downcasting)
Any 和 AnyObject 的類型轉(zhuǎn)換
嵌套類型-Nested Types
嵌套類型實踐
引用嵌套類型
擴展-Extentions
擴展語法
計算型屬性
構(gòu)造器
方法
下標(biāo)
嵌套類型
協(xié)議-Protocols
協(xié)議語法(Protocol Syntax)
屬性要求(Property Requirements)
方法要求(Method Requirements)
Mutating 方法要求(Mutating Method Requirements)
構(gòu)造器要求(Initializer Requirements)
協(xié)議作為類型(Protocols as Types)
委托(代理)模式(Delegation)
通過擴展添加協(xié)議一致性(Adding Protocol Conformance with an Extension)
通過擴展采納協(xié)議(Declaring Protocol Adoption with an Extension)
協(xié)議類型的集合(Collections of Protocol Types)
協(xié)議的繼承(Protocol Inheritance)
類類型專屬協(xié)議(Class-Only Protocol)
協(xié)議合成(Protocol Composition)
檢查協(xié)議一致性(Checking for Protocol Conformance)
可選的協(xié)議要求(Optional Protocol Requirements)
協(xié)議擴展(Protocol Extensions)
泛型-Generics
泛型所解決的問題
泛型函數(shù)
類型參數(shù)
命名類型參數(shù)
泛型類型
擴展一個泛型類型
類型約束
關(guān)聯(lián)類型
Where 子句
訪問控制-Access Control
模塊和源文件
訪問級別
訪問控制語法
自定義類型
子類
常量、變量、屬性、下標(biāo)
構(gòu)造器
協(xié)議
擴展
泛型
類型別名
高級操作符-Advanced Operators
位運算符
溢出運算符
優(yōu)先級和結(jié)合性
運算符函數(shù)
自定義運算符
后記
令我欣慰的是其中相當(dāng)一部分概念在Object-C中已經(jīng)存在,不然不然……額,無法想象。嗯,就是這樣,真漢子就是干,萬丈高樓平地起,不怕,我們慢慢來/(ㄒoㄒ)/~~
另外,感謝中文版 Apple 官方 Swift 教程《The Swift Programming Language》的翻譯者們,感興趣的可以Star一下~