Swift简介
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。
2015年12月4日,苹果公司宣布其Swift编程语言现在开放源代码。长600多页的 The Swift Programming Language 可以在线免费下载。
感言
至今swift才刚两岁,但是但是作为计算机语言家族的新宠,这位磨人的小妖精已经吸(gou)引(da)了大批脑残粉,而作为苹果开发者的我们,还有什么理由不赶快去一亲芳泽呢,小朋友们,再不开始马上立刻上车终将被历史的车轮碾成粉末,so,let us go!
Swift完整学习路线
基础部分-The Basics
常量和变量 声明常量和变量 类型标注 常量和变量的命名 输出常量和变量 注释 分号 整数 整数范围 Int UInt 浮点数 类型安全和类型推断 数值型字面量 数值型类型转换 整数转换 数整数和浮点数转换 类型别名 布尔值 元组 可选 nil if 语句以及强制解析 可选绑定 隐式解析可选类型 错误处理 断言
基本运算符-Basic Operators
术语
赋值运算符
算术运算符
组合赋值运算符
比较运算符
三目运算符
空合运算符
区间运算符
逻辑运算符
字符串和字符-Strings and Characters
字符串字面量
初始化空字符串
字符串可变性
字符串是值类型
使用字符
连接字符串和字符
字符串插值
Unicode
计算字符数量
访问和修改字符串
比较字符串
字符串的 Unicode 表示形式
集合类型-Collection Types
集合的可变性(Mutability of Collections)
数组(Arrays)
集合(Sets)
字典(Dictionaries)
控制流-Control Flow
For-In 循环
While 循环
条件语句
控制转移语句(Control Transfer Statements)
提前退出
检测 API 可用性
函数-Functions
函数定义与调用(Defining and Calling Functions)
函数参数与返回值(Function Parameters and Return Values)
函数参数名称(Function Parameter Names)
函数类型(Function Types)
嵌套函数(Nested Functions)
闭包-Closures
闭包表达式(Closure Expressions)
尾随闭包(Trailing Closures)
值捕获(Capturing Values)
闭包是引用类型(Closures Are Reference Types)
非逃逸闭包(Nonescaping Closures)
自动闭包(Autoclosures)
枚举-Enumerations
枚举语法(Enumeration Syntax)
使用 Switch 语句匹配枚举值(Matching Enumeration Values with a Switch Statement)
关联值(Associated Values)
原始值(Raw Values)
递归枚举(Recursive Enumerations)
类和结构体-Classes and Structures
类和结构体对比
结构体和枚举是值类型
类是引用类型
类和结构体的选择
字符串(String)、数组(Array)、和字典(Dictionary)类型的赋值与复制行为
属性-Properties
存储属性(Stored Properties)
计算属性(Computed Properties)
属性观察器(Property Observers)
全局变量和局部变量(Global and Local Variables)
类型属性(Type Properties)
方法-Methods
实例方法(Instance Methods)
类型方法(Type Methods)
下标脚本-Subscripts
下标语法
下标用法
下标选项
继承-Inheritance
定义一个基类(Defining a Base Class)
子类生成(Subclassing)
重写(Overriding)
防止重写(Preventing Overrides)
构造过程-Initialization
存储属性的初始赋值
自定义构造过程
默认构造器
值类型的构造器代理
类的继承和构造过程
可失败构造器
必要构造器
通过闭包或函数设置属性的默认值
析构过程-Deinitialization
析构过程原理
析构器实践
自动引用计数-Automatic Reference Counting
自动引用计数的工作机制
自动引用计数实践
类实例之间的循环强引用
解决实例之间的循环强引用
闭包引起的循环强引用
解决闭包引起的循环强引用
可选链-Optional Chaining
使用可选链式调用代替强制展开
为可选链式调用定义模型类
通过可选链式调用访问属性
通过可选链式调用调用方法
通过可选链式调用访问下标
连接多层可选链式调用
在方法的可选返回值上进行可选链式调用
错误处理-Error Handling
表示并抛出错误
处理错误
指定清理操作
类型转换-Type Casting
定义一个类层次作为例子
检查类型
向下转型(Downcasting)
Any 和 AnyObject 的类型转换
嵌套类型-Nested Types
嵌套类型实践
引用嵌套类型
扩展-Extentions
扩展语法
计算型属性
构造器
方法
下标
嵌套类型
协议-Protocols
协议语法(Protocol Syntax)
属性要求(Property Requirements)
方法要求(Method Requirements)
Mutating 方法要求(Mutating Method Requirements)
构造器要求(Initializer Requirements)
协议作为类型(Protocols as Types)
委托(代理)模式(Delegation)
通过扩展添加协议一致性(Adding Protocol Conformance with an Extension)
通过扩展采纳协议(Declaring Protocol Adoption with an Extension)
协议类型的集合(Collections of Protocol Types)
协议的继承(Protocol Inheritance)
类类型专属协议(Class-Only Protocol)
协议合成(Protocol Composition)
检查协议一致性(Checking for Protocol Conformance)
可选的协议要求(Optional Protocol Requirements)
协议扩展(Protocol Extensions)
泛型-Generics
泛型所解决的问题
泛型函数
类型参数
命名类型参数
泛型类型
扩展一个泛型类型
类型约束
关联类型
Where 子句
访问控制-Access Control
模块和源文件
访问级别
访问控制语法
自定义类型
子类
常量、变量、属性、下标
构造器
协议
扩展
泛型
类型别名
高级操作符-Advanced Operators
位运算符
溢出运算符
优先级和结合性
运算符函数
自定义运算符
后记
令我欣慰的是其中相当一部分概念在Object-C中已经存在,不然不然……额,无法想象。嗯,就是这样,真汉子就是干,万丈高楼平地起,不怕,我们慢慢来/(ㄒoㄒ)/~~
另外,感谢中文版 Apple 官方 Swift 教程《The Swift Programming Language》的翻译者们,感兴趣的可以Star一下~