The Swift Programming Language中文完整版(CocoaChina精校).pdf
目录1.欢迎使⽤Swift ................................ ..... 8 1.1.关于Swift ................................ ... 8 1.2. Swift初见..... ................................ ... 9简单值..... ................................ ... 9控制流..... ................................ .... 11函数和闭包..... ................................ ... 14对象和类..... ................................ .... 16枚举和结构体..... ................................ ... 20接口和扩展..... ................................ ... 23泛型..... ................................ ..... 25 2. Swift教程..... ................................ ... 26 2.1基础部分..... ................................ ..... 26常量和变量..... ................................ ... 27注释..... ................................ ..... 30分号..... ................................ ..... 31整数..... ................................ ..... 31浮点数..... ................................ .... 32类型安全和类型推测..... ..... ... 32数值型字面量..... ................................ ... 33数值型类型转换..... ............................... 35类型别名..... ................................ .... 36布尔值..... ................................ .... 37元组..... ................................ ..... 38可选..... ................................ ..... 40断言..... ................................ ..... 44 2.2.基本运算符..... ................................ ... 45术语..... ................................ ..... 46赋值运算符..... ................................ ... 47数值运算..... ................................ .... 47复合赋值..... ................................ .... 51比较运算..... ................................ .... 51三目条件运算..... ................................ ... 52区间运算符..... ................................ ... 53逻辑运算..... ................................ .... 54 2.3.字符串和字符..... ................................ ... 57字符串字面量..... ................................ ... 58 The Swift Programming Language中文CocoaChina精校版3初始化空字符串..... ............................... 59字符串可变性..... ................................ ... 59字符串是值类型..... ............................... 60使用字符(Characters) ................................ .... 60计算字符数量..... ................................ ... 61连接字符串和字符..... ..... .... 61字符串插值..... ................................ ... 62比较字符串..... ................................ ... 63大写和小写字符串..... ..... .... 65 Unicode ................................ ..... 65 2.4.集合类型..... ................................ .... 68数组..... ................................ ..... 68字典..... ................................ ..... 74集合的可变性..... ................................ ... 79 2.5.控制流..... ................................ .... 79 For循环..... ................................ .... 80 While循环..... ................................ ... 84条件语句..... ................................ .... 88控制转移语句..... ................................ ... 97 2.6.函数..... ................................ ....103定义和调用函数..... .............................. 104函数的形参和返回值..... ..... ..... 105函数形参名..... ................................ .....108函数类型..... ................................ ...115嵌套函数..... ................................ ...119 2.7.闭包..... ................................ ....119闭包表达式..... ................................ .....120 Trailing闭包..... ................................ ...124捕获(Caputure) ................................ ..... 127闭包是引用类型..... .............................. 129 2.8.枚举..... ................................ ....130枚举语法( Enumeration Syntax) ................................ ..130匹配枚举值和Switch语句..... ..... ...132关联值( Associated Values) ................................ ...133原始值( Raw Values) ................................ .... 135 2.9.类和结构体..... ................................ .....137类和结构体对比..... .............................. 138结构体和枚举是值类型..... ..... ..... 141类是引用类型..... ................................ ..143类和结构体的选择..... ..... ... 145 The Swift Programming Language中文CocoaChina精校版4集合(Collection)类型的赋值和拷贝行为..... ... 146 2.10.属性..... ................................ .....151存储属性..... ................................ ...152计算属性..... ................................ ...155属性监视器..... ................................ .....158全局变量和局部变量..... ..... ..... 160类型属性..... ................................ ...160 2.11. ⽅法..... ................................ .....165实例方法(Instance Methods)..... ..... .....165类型方法(Type Methods) ................................ ....171 2.12.附属脚本..... ................................ ....174附属脚本语法..... ................................ ..174附属脚本用法..... ................................ ..176附属脚本选项..... ................................ ..176 2.13.继承..... ................................ .....178定义一个基类(Base class) ................................ ....179子类生成( Subclassing) ................................ ...180重写( Overriding) ................................ ... 182防止重写..... ................................ ...186 2.14.构造过程..... ................................ ....187存储型属性的初始赋值..... ..... ..... 187定制化构造过程..... .............................. 189默认构造器..... ................................ .....192值类型的构造器代理..... ..... ..... 193类的继承和构造过程..... ..... ..... 196通过闭包和函数来设置属性的默认值..... .... 207 2.15.反初始化..... ................................ ....209反初始化..... ................................ ...209反初始化原理..... ................................ ..209 2.16.自动引用计数..... ................................ 212 ARC如何工作..... ................................ 213 ARC实践..... ................................ ....214类实例间的强引用环..... ..... ..... 215解决实例间的强引用环..... ..... ..... 218解决闭包产生的强引用环..... ..... ....228 2.17.自判断链接..... ................................ ...230自判断链接可替代强制拆包..... ..... ....231为自判断链接定义模型类..... ..... ....233通过自判断链接调用属性..... ..... ....235 The Swift Programming Language中文CocoaChina精校版5通过自判断链接调用方法..... ..... ....235使用自判断链接调用子脚本..... ..... ....236连接多层链接..... ................................ ..237链接自判断返回值的方法..... ..... ....238 2.18.类型转换..... ................................ ....239定义一个类层次作为例子..... ..... ....239检查类型..... ................................ ...241向下转型(简称下转) ................................ ..... 242 Any和AnyObject的转换..... ..... ....243 2.19类型嵌套..... ................................ .....246类型嵌套实例..... ................................ ..246类型嵌套的引用..... .............................. 248 2.20扩展..... ................................ ...249扩展语法( Extension Syntax) ................................ ....249计算型属性( Computed Properties) ..... ..... 250构造器( Initializers) ................................ .... 251方法( Methods) ................................ ... 252下标( Subscripts) ................................ ... 254嵌套类型( Nested Types) ................................ ...255 2.21协议..... ................................ ...256协议的语法..... ................................ .....256属性要求..... ................................ ...257方法要求..... ................................ ...258突变方法要求..... ................................ ..259协议类型..... ................................ ...261委托(代理)模式..... ............................... 262在扩展中添加协议成员..... ..... ..... 265通过延展补充协议声明..... ..... ..... 266集合中的协议类型..... ..... ... 267协议的继承..... ................................ .....267协议合成..... ................................ ...269检验协议的一致性..... ..... ... 270可选协议要求..... ................................ ..271 2.22泛型..... ................................ ...274泛型所解决的问题..... ..... ... 274泛型函数..... ................................ ...276类型参数..... ................................ ...277命名类型参数..... ................................ ..277泛型类型..... ................................ ...278类型约束..... ................................ ...281 The Swift Programming Language中文CocoaChina精校版6关联类型..... ................................ ...284 Where语句..... ................................ ....287 2.23高级运算符..... ................................ ....290位运算符..... ................................ ...291溢出运算符..... ................................ .....296优先级和结合性..... .............................. 299运算符函数..... ................................ .....300自定义运算符..... ................................ ..304 3语言附注..... ................................ ....305 3.1关于语言附注..... ................................ ...305如何阅读语法..... ................................ ..306 3.2词法结构..... ................................ ...307空白与注释..... ................................ .....307标识符..... ................................ ...307关键字..... ................................ ...309字面量..... ................................ ...309运算符..... ................................ ...313 3.3类型..... ................................ ....314类型注解..... ................................ ...315类型标识符..... ................................ .....316元组类型..... ................................ ...316函数类型..... ................................ ...317数组类型..... ................................ ...319可选类型..... ................................ ...319隐式解析可选类型..... ..... ... 320协议合成类型..... ................................ ..321元类型..... ................................ ...322类型继承子句..... ................................ ..323类型推断..... ................................ ...323 3.4表达式..... ................................ ....324前缀表达式( Prefix Expressions) ................................ .....325二元表达式( Binary Expressions) ................................ ....325赋值表达式( Assignment Operator) ................................ 328三元条件运算符( Ternary Conditional Operator) ..... .....328类型转换运算符( Type-Casting Operators) ..... .... 329主要表达式( Primary Expressions) ................................ ..330后缀表达式( Postfix Expressions) ................................ ...336 3.5语句..... ................................ ....342循环语句..... ................................ ...343分支语句..... ................................ ...346 The Swift Programming Language中文CocoaChina精校版7带标签的语句..... ................................ ..350 3.6声明..... ................................ ....354模块范围..... ................................ ...355代码块..... ................................ ...356引入声明..... ................................ ...356常量声明..... ................................ ...357变量声明..... ................................ ...358类型的别名声明..... .............................. 362函数声明..... ................................ ...363枚举声明..... ................................ ...367结构体声明..... ................................ .....369协议声明..... ................................ ...372构造器声明..... ................................ .....376析构声明..... ................................ ...377扩展声明..... ................................ ...378附属脚本声明..... ................................ ..378运算符声明..... ................................ .....379 3.7特性..... ................................ ....381声明特性..... ................................ ...382类型特性..... ................................ ...385 3.8模式..... ................................ ....385通配符模式( Wildcard Pattern) ................................ ...386标识符模式( Identifier Pattern) ................................ ...387值绑定模式( Value-Binding Pattern) ..... .... 387元组模式( Tuple Pattern) ................................ ...388枚举案例模式( Enumeration Case Pattern) ..... .... 389类型转换模式( Type-Casting Patterns) ..... .... 389表达式模式( Expression Pattern) ................................ ....390 3.9泛型参数..... ................................ ...391泛型形参语句..... ................................ ..391泛型实参语句..... ................................ ..393 3.10语法总结..... ................................ .....394语句..... ................................ ....395泛型参数..... ................................ ...396声明..... ................................ ....397模式..... ................................ ....402特性..... ................................ ....403表达式..... ................................ ...403词法结构..... ................................ ...406类型..... ................................ ....409
13.43MB
文件大小:
评论区