Swift语言快速入门(内部资料)

试读下载地址:http://pan.baidu.com/s/1eQCGRHw

前言Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入门(内部资料)
Swift是苹果公司在2014年WWDC大会上推出的新的编程语言,用于取代原有的苹果官方语言Objective-C。Swift主要用于编写iOS和Mac OS应用程序。在此编程语言推出以后,就有将近37万的开发者在苹果官网下载Swift手册进行学习。同时,《Swift中文版》也由国内自发的翻译小组花费9天时间完成。
通过《Swift中文版》,读者可以了解Swift的一些语法特性。但由于它只是对语法手册的翻译,存在以下缺陷:
第一,它仅是一个语法词典,只是简单地、逐条地对语法进行解释。类似于学英语,靠一本英语词典学会英语,难度是相当的高。
第二,它所具备的实例有限。地球人都知道,学习编程语言的最佳手段是通过实例代码学习。没有足够的实例,只靠零星的代码片段或语法就能理解Swift,那是高手所为。
基于以上不可忽略的事实,本书决定着眼于讲解Swift语言的入门,将苹果官方提供的Swift手册内容重新进行系统的划分,并针对每一个知识点配套相应实例,帮助读者可以快速学习和掌握Swift语言。
1.学习所需的系统和软件
    Mac OS 10.9.4以上的操作系统
    安装Xcode 6
2.学习建议Swift教程Swift语言快速入门(内部资料)
大家学习之前,可以致信到xxxxxxxxxxx,获取相关的资料和软件。如果大家在学习过程遇到问题,也可以将问题发送到该邮箱。我们将尽力给大家解决。 
目  录
第1章  编写第一个Swift程序 1      Swift教程Swift语言快速入门(内部资料)
1.1  初识Swift 1
1.1.1  Swift的诞生 1
1.1.2  Swift的特点与不足 1
1.2  搭建开发环境 2
1.2.1  安装Xcode 6 2
1.2.2  安装组件 3
1.2.3  更新组件和文档 3
1.3  编写第一个程序 4
1.3.1  创建项目 4
1.3.2  Xcode 6界面介绍 7
1.3.3  编译和运行 9
1.3.4  编写代码 10
1.3.5  生成可执行文件 11
1.4  Swift代码分析 12
1.4.1  代码的构成 12
1.4.2  标识符 13
1.4.3  关键字 14
1.4.4  注释 14
1.4.5  文件构成 15
1.5  使用帮助文档 16
第2章  数据类型 17
2.1  常量变量 18
2.1.1  常量 18
2.1.2  变量 18
2.1.3  为声明的变量和常量指定数据类型 19
2.2  简单的数据类型 20
2.2.1  整数(Integer) 20
2.2.2  整型 21
2.2.3  浮点类型 21
2.2.4  字符类型/字符串类型 23
2.2.5  布尔类型 23
2.2.6  可选类型 24
2.3字面值 25
2.3.1  整型字面值 25
2.3.2  浮点类型的字面值 25
2.3.3  字符型字面值 26
2.3.4  字符串字面值 26
2.3.5  布尔类型的字面值 27
2.4  高级数据类型——元组 27
2.5  类型别名 29
第3章  语句和表达式 30
3.1  语句 30
3.2  运算符与表达式 30
3.2.1  常用术语——元 30
3.2.2  赋值运算符和表达式 31
3.2.3  算术运算符和表达式 31
3.2.4  取余运算符和表达式 33
3.2.5  自增自减运算符和表达式 34
3.2.6  一元减运算符 36
3.2.7  一元加运算符 36
3.2.8  位运算符 37
3.2.9  溢出运算符 43
3.2.10  比较运算符和表达式 46
3.2.11  三元条件运算符 47
3.2.12  逻辑运算符和表达式 47
3.2.13  范围运算符 49
3.2.14  复合赋值运算符和表达式 51
3.2.15  求字节运算符和表达式 51
3.2.16  强制解析 52
3.3  类型转换 53
3.3.1  整数的转换 53
3.3.2  整数和浮点数的转换 53
第4章  字符串 54
4.1  字符串的初始化 54
4.1.1  字符串的种类 54
4.1.2  初始化空的字符串 55
4.1.3  使用字符串初始化字符串 55
4.1.4  计算字符个数 56
4.1.5  遍历字符 56
4.2  字符串组合 56
4.2.1  字符串与字符组合 57
4.2.2  字符串与字符串组合 57
4.3  字符串判断 58
4.3.1  判断字符串是否为空 59
4.3.2  判断字符串相等 59
4.3.3  判断前缀 60
4.3.4  判断后缀 60
4.4  大小写转换 61
4.4.1  大写转换 61
4.4.2  小写转换 62
4.5  Unicode编码 62
4.5.1  Unicode术语 62
4.5.2  Unicode字符串 63
4.5.3  UTF-8编码 63
4.5.4  UTF-16编码 63
4.5.5  UTF标量 64
第5章  集合类型 64
5.1  数组 64
5.1.1  数组字面量 65
5.1.2  数组的定义 65
5.1.3  数组的初始化 65
5.2  数组的操作 67
5.2.1  获取数组中元素的个数 67
5.2.2  判断数组是否为空 67
5.2.3  判断两个数组是否共用相同的元素 68
5.2.4  复制数组 69
5.2.5  在末尾添加一个元素 69
5.2.6  插入值 70
5.2.7  读取值 70
5.2.8  修改值 71
5.2.9  删除值 72
5.2.10  遍历数组 73
5.3  字典 74
5.3.1  字典字面量 74
5.3.2  字典的定义 75
5.3.3  字典的初始化 75
5.4  字典的操作 76
5.4.1  获取字典中的元素个数 76
5.4.2  读取键的值 76
5.4.3  添加元素 77
5.4.4  修改键关联的值 77
5.4.5  删除键 78
5.4.6  遍历 79
5.5  可变的集合类型 81
第6章  程序控制结构 81
6.1  顺序结构 81
6.1.1  程序的执行流程 81
6.1.2  代码调试 82
6.2  选择结构——if语句 83
6.2.1  if语句 83
6.2.2  if...else语句 84
6.2.3  if...else if语句 86
6.3  选择结构——switch语句 87
6.3.1  switch语句基本形式 88
6.3.2  规则1:相同的常量或常量表达式 90
6.3.3  规则2:可执行的语句不能为空 90
6.3.4  规则3:多条件组合 90
6.3.5  规则4:范围匹配 91
6.3.6  规则5:使用元组 91
6.3.7  规则6:数值绑定 92
6.3.8  规则7:使用where关键字 93
6.4  循环结构——for语句 94
6.4.1  for...in循环 95
6.4.2  for-condition-increment条件循环 96
6.5  循环结构——while语句 97
6.5.1  while循环 98
6.5.2  do while循环 99
6.6  跳转语句 100
6.6.1  continue语句 100
6.6.2  break语句 100
6.6.3  fallthrough语句 101
6.6.4  使用标签语句 102
第7章  函数和闭包 104
7.1  函数介绍 104
7.2  使用无参函数 105
7.2.1  无参函数的声明定义 105
7.2.2  无参函数的调用 106
7.2.3  空函数 107
7.3  使用有参函数 107
7.3.1  有参函数的声明定义 107
7.3.2  有参函数的调用 108
7.3.3  参数的注意事项 108
7.4  函数参数的特殊情况 109
7.4.1  本地参数名 109
7.4.2  外部参数名 110
7.4.3  设定参数默认值 111
7.4.4  为外部参数设置默认值 112
7.4.5  可变参数 112
7.4.6  常量参数和变量参数 113
7.4.7  输入-输出参数 114
7.5  函数的返回值 116
7.5.1  具有一个返回值的函数 116
7.5.2  具有多个返回值的函数 116
7.5.3  无返回值 118
7.6  函数类型 118
7.6.1  使用函数类型 118
7.6.2  使用函数类型作为参数类型 119
7.6.3  使用函数类型作为返回值类型 120
7.7  标准函数 121
7.7.1  绝对值函数abs() 121
7.7.2  最大值函数max()/最小值min() 121
7.7.3  序列的最大值函数maxElement()/最小值函数minElement() 123
7.7.4  判断序列是否包含指定元素函数contains() 124
7.7.5  序列排序函数sort() 124
7.7.6  序列倒序函数reverse() 125
7.8  函数嵌套调用形式 125
7.8.1  嵌套调用基本形式 126
7.8.2  递归调用 127
7.9  闭包 128
7.9.1  闭包表达式 128
7.9.2  使用闭包表达式的注意事项 131
7.9.3  Trailing闭包 132
7.9.4  捕获值 134
第8章  类 134
8.1  类与对象 135
8.1.1  类的组成 135
8.1.2  创建类 135
8.1.3  实例化对象 136
8.2  属性 136
8.2.1  存储属性 136
8.2.2  计算属性 141
8.2.3  类型属性 145
8.2.4  属性监视器 147
8.3  方法 150
8.3.1  实例方法 150
8.3.2  类型方法 154
8.3.3  存储属性、局部变量和全局变量的区别 156
8.3.4  局部变量和存储属性同名的解决方法——self属性 158
8.4  下标脚本 158
8.4.1  定义下标脚本 158
8.4.2  调用下标脚本 159
8.4.3  使用下标脚本 159
8.5  类的嵌套 163
8.5.1  直接嵌套 163
8.5.2  多次嵌套 165
8.6  可选链接 167
8.6.1  可选链接的实现方式 167
8.6.2  通过可选链接调用属性、下标脚本、方法 168
8.6.3  连接多个链接 170
第9章  继承 171
9.1  为什么使用继承 171
9.1.1  减少代码量 171
9.1.2  扩展功能 172
9.2  继承的实现 173
9.2.1   继承的定义 174
9.2.2  属性的继承 174
9.2.3  下标脚本的继承 175
9.2.4  方法的继承 176
9.3  继承的特点 177
9.3.1  多层继承 177
9.3.2  不可删除 179
9.4  重写 179
9.4.1  重写属性 179
9.4.2  重写下标脚本 182
9.4.3  重写方法 183
9.4.4  重写的注意事项 184
9.4.5  访问父类成员 185
9.4.6  阻止重写 188
9.5  类型检查 190
9.5.1  类型检查——is 191
9.5.2  类型检查——as 192
9.5.3  AnyObject和Any的类型检查 194
第10章  枚举类型 196
10.1  枚举类型的组成 196
10.2  定义枚举类型 197
10.2.1  任意类型的枚举类型 197
10.2.2  指定数据类型的枚举类型 197
10.3  定义枚举类型的成员 198
10.3.1  定义任意类型的枚举成员 198
10.3.2  定义指定数据类型的枚举类型成员 199
10.3.3  注意事项 201
10.4  实例化枚举类型的对象 201
10.5  访问枚举类型中成员的原始值 202
10.5.1  通过成员访问原始值 202
10.5.2  通过原始值获取成员 203
10.6  枚举成员与switch匹配 205
10.7  相关值 206
10.8  定义枚举类型的属性 208
10.8.1  计算属性 208
10.8.2  类型属性 209
10.8.3  属性监视器 209
10.9  定义枚举类型的下标脚本 210
10.10  定义枚举类型的方法 211
10.10.1  实例方法 211
10.10.2  类型方法 213
10.11  枚举类型的应用 213
10.11.1  为常量/变量赋值 213
10.11.2  作为函数的参数 214
10.12  枚举类型嵌套 215
10.12.1  直接嵌套 215
10.12.2  多次嵌套 216
第11章  结构 218
11.1  结构的定义和实例化 218
11.1.1  结构的构成 218
11.1.2  定义结构 218
11.1.3  实例化对象 219
11.2  定义结构的属性 219
11.2.1  存储属性 219
11.2.2  计算属性 221
11.2.3  类型属性 222
11.2.4  添加属性监视器 222
11.2.5  初始化实例对象 223
11.3   定义结构的下标脚本 225
11.4  定义结构的方法 226
11.4.1  实例方法 226
11.4.2  类型方法 227
11.5  结构嵌套 228
11.5.1  直接嵌套 228
11.5.2  多次嵌套 229
11.6  类、枚举类型、结构的区别 230
11.7  类、枚举、结构的嵌套 231
11.7.1  枚举使用在类中 231
11.7.2  枚举使用在结构中 231
11.7.3  类使用在结构中 232
第12章  构造方法和析构方法 233
12.1  值类型的构造器 233
12.1.1  默认构造器 234
12.1.2  自定义构造器 234
12.1.3  构造器代理 238
12.2  类的构造器 243
12.2.1  默认构造器 243
12.2.2  自定义构造器 243
12.2.3  构造器代理 248
12.2.4  构造器的继承和重载 249
12.3  构造器的特殊情况 256
12.3.1  可选类型 256
12.3.2  修改常量属性 256
12.4  类的构造 257
12.5  设置默认值 259
12.5.1  在定义时直接赋值 259
12.5.2  在构造器中赋值 259
12.5.3  使用闭包设置属性的默认值 259
12.5.4  使用函数设置默认值 261
12.6  析构方法 261
12.6.1  理解析构 261
12.6.2  析构方法的定义 262
12.6.3  使用析构方法 262
12.6.4  构造方法和析构方法的区别 264
第13章  扩展和协议 264
13.1  扩展 264
13.1.1  扩展的定义 264
13.1.2  扩展属性 265
13.1.3  扩展构造器 267
13.1.4  扩展方法 270
13.1.5  扩展下标脚本 272
13.1.6  扩展嵌套类型 273
13.2  协议 273
13.2.1  协议的定义 274
13.2.2  协议的实现 274
13.2.3  协议的成员声明——属性 275
13.2.4  协议的成员声明——方法 278
13.2.5  协议的成员声明——可变方法 280
13.3  可选协议 281
13.3.1  定义可选协议 282
13.3.2  声明可选成员 283
13.3.3  调用可选协议 284
13.4  使用协议类型 286
13.4.1  协议类型作为常量、变量等的数据类型 286
13.4.2  协议类型的返回值或参数 287
13.4.3  协议类型作为集合的元素类型 287
13.5  在扩展中使用协议 288
13.5.1  在扩展中实现协议 288
13.5.2  定义协议成员 288
13.5.3  扩展协议声明 289
13.6  协议的继承 290
13.7  协议组合 291
13.8  检查协议的一致性 292
13.9  委托 293
第14章  自动引用计数(ARC) 296
14.1  自动引用计数的工作机制 296
14.2  循环强引用的产生 298
14.2.1  类实例之间的循环强引用 298
14.2.2  闭包引起的循环强引用 300
14.3  循环强引用的解决方法 302
14.3.1  解决类实例之间的循环强引用 302
14.3.2  解决闭包引起的循环强引用 307
第15章  运算符重载 309
15.1  为什么使用运算符重载 310
15.2  算术运算符的重载 310
15.3  一元减/加运算符的重载 311
15.3.1  一元减运算符的重载 312
15.3.2  一元加运算符的重载 312
15.4  复合赋值运算符的重载 313
15.5  自增自减运算符的重载 315
15.5.1  自增运算符的重载 315
15.5.2  自减运算符的重载 317
15.6  比较运算符的重载 319
15.6.1  “==”相等运算符的重载 319
15.6.2  “!=”不相等运算符的重载 320
15.6.3  其他比较运算符的重载 321
15.7  自定义运算符的重载 322
15.7.1  前置自定义运算符的重载 322
15.7.2  中置自定义运算符的重载 323
15.7.3  后置自定义运算符的重载 323
15.7.4  自定义运算符的优先级和结合性 325
15.8  注意事项 331
15.8.1  重载后运算符的优先级 331
15.8.2  不可以重载的运算符 333
第16章  泛型 333
16.1  为什么使用泛型 333
16.2  泛型函数 334
16.3  泛型类型 335
16.3.1  泛型枚举 335
16.3.2  泛型结构 336
16.3.3  泛型类 338
16.4  泛型类的层次结构 339
16.4.1  使用泛型基类 339
16.4.2  使用泛型派生类 340
16.5  具有多个类型参数的泛型 340
16.6  类型约束 341
16.7  关联类型 342
16.7.1  定义关联类型 342
16.7.2  扩展已存在类型为关联类型 344
16.7.3  约束关联类型 346

Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入门(内部资料)Swift教程Swift语言快速入门(内部资料)

Swift教程Swift语言快速入门(内部资料)相关推荐

  1. Swift 1.1语言快速入门7.2使用无参函数

    Swift 1.1语言快速入门7.2使用无参函数 无参数函数是指没有参数列表的函数.以下对它的声明定义.调用以及最简单的函数--空函数进行详细的讲解 7.2.1  无参函数的声明定义 函数在使用之前必 ...

  2. Swift 语言快速入门

    Swift 语言快速入门 简单值 控制流 函数闭包 对象和类 枚举和结构体 协议和拓展 错误处理 泛型 由于项目原因,需要做一款 iOS 应用...然后这个任务就落到了我身上-emm 经过我的全方面了 ...

  3. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

  4. houdini计算机语言,Houdini VEX语言快速入门教程MIXTRAINING-PATREON Houdini Nature of Vex

    Houdini VEX语言快速入门教程MIXTRAINING-PATREON Houdini Nature of Vex 自从Houdini引入VEX语言以来,它一直在不断发展,最近它已经成为FX T ...

  5. c语言类似于 n的标识符,C语言快速入门教程(二)

    C语言快速入门教程(二) C语言的基本语法 本节学习路线图: 引言: C语言,顾名思义就是一门语言,可以类比一下英语; 你要说出一个英语的句子需要: 单词 + 语法! 将单词按照一定的语法拼凑起来就成 ...

  6. OpenAI API及ChatGPT系列教程1:快速入门

    系列文章目录: OpenAI API及ChatGPT系列教程1:快速入门 OpenAI API及ChatGPT系列教程2:使用手册 OpenAI API及ChatGPT系列教程3:API参考(Pyth ...

  7. 小猪的C语言快速入门系列(一)

    小猪的C语言快速入门系列(一) 标签: C语言 本系列教程引言: C语言 作为大学编程或者计算机专业的一门必修课,把很多初学编程的小伙伴 都难住了,感觉无从下手,本套教程就是为此而诞生的.教程会把 C ...

  8. 视频教程-做游戏学Python-Python语言快速入门-Python

    做游戏学Python-Python语言快速入门 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版 ...

  9. Common Lisp语言快速入门

    zhezhelin Common Lisp语言快速入门 Lisp是软件领域的分裂力量.一方面,Lisp爱好者誓言Lisp比软件领域内的其它语言都更加快捷.整洁和强大:而反对者则辩称,不可靠的执行和库支 ...

最新文章

  1. opencv imencode和imdecode使用,用于网络传输图片
  2. 读取MySQL初始化配置_MySQL 初始化配置
  3. PyQt5 技巧篇-按钮竖排显示方法,Qt Designer设置按钮竖排显示。
  4. 【练习】使用事务控制语句
  5. 高级php面试题及部分答案
  6. Linux 命令详解(二)awk 命令
  7. Dotnet Core
  8. linux 修改ldap密码,centos – ldap强制用户更改密码
  9. 5分钟看懂,未来1年web前端新趋势,都在这了!!!
  10. 电脑计算机软件硬盘不足,磁盘空间不足-电脑在运行程序的时候,总是要弹出磁盘空间不足,是什么原因造成磁盘? 爱问知识人...
  11. C++ multimap 用法总结 例子
  12. kubernetest pod为ContainerCreating、ImagePullBackOff状态 怎么办
  13. 第十三章 RememberMe——《跟我学Shiro》[张开涛]
  14. 超牛逼的性能调优利器 — 火焰图
  15. Sublime Text 2 设置文件详解转
  16. 《透视盒马:新零售操作系统的秘密》
  17. Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比
  18. element实现form表单动态添加email效果
  19. acg缩写_ACG如何在Alexa上使屡获殊荣的技术播客栩栩如生,以及我们在此过程中学到的知识...
  20. 计算机毕业设计JavaBS景区票务管理系统设计与实现(源码+系统+mysql数据库+lw文档)

热门文章

  1. Asp.NET MVC3添加域(Areas)区分Admin域和用户域
  2. 面相对象的topSort和递推【ural1022/ural1017】
  3. 将Integer赋值给int(空指针异常)
  4. MERGE INTO 解决大数据量 10w 更新缓慢的问题
  5. 解决element 照片墙上传时回显问题
  6. 在使用postman中操作api接口测试403解决方法
  7. Office安装时报错1907的解决方法
  8. Linux 中ifconfig和ip addr命令查看不到ip解决方法
  9. 使用curl从HTTP POST仅获取响应标头
  10. 检查值是否是JavaScript中的对象