√Swift非常适于系统编程,同时它也能被用于书写高层级的代码。
√如果你已想深入探索这门语言的奥秘,这是*一能找到的一本书。
√全球知名iOS教学网站objc,其精品图书更是惠及无数开发者。
√高层级抽象如泛型|协议,低层级如封装C代码、字符串内部实现。
在本书中,我们涵盖了Swift程序设计的一些进阶话题。如果你已经通读Apple的Swift编程指南,并且想要深入探索关于这门语言的更多内容,那么这本书正适合你!Swift非常适合用来进行系统编程,而同时它也能被用于书写高层级的代码。我们在书中既会研究像是泛型、协议这样的高层级抽象的内容,也会涉足像是封装C代码以及字符串内部实现这样的低层级话题。
王巍(onevcat),《Swifter(第2版):100个Swift2开发必备Tip》作者,来自中国的一线iOS开发者,毕业于清华大学。在校期间就开始进行iOS开发,拥有丰富的Cocoa和Objective-C开发经验,另外他也活跃于使用C#的Unity3D游戏开发界。曾经开发了《小熊推金币》,《PomoDo》等一系列优秀的iOS游戏和应用。在业余时间,王巍会在OneV'sDen撰写博客,分享他在开发中的一些心得和体会。另外,王巍还是翻译项目objc中国的组织者和管理者,为中国的Objective-C社区的发展做出了贡献。同时,他也很喜欢为开源社区贡献代码,是著名的Xcode插件VVDocumenter的作者。现在王巍旅居日本,并就职于即时通讯软件公司Line,从事iOS开发工作,致力于为全世界带来更好体验和功能的应用。
第1章介绍1
1.1本书所面向的读者2
1.2主题3
1.3术语6
1.4Swift风格指南9
第2章内建集合类型11
2.1数组11
数组和可变性11
数组和可选值13
数组变形14
数组类型25
2.2字典27
可变性28
有用的字典扩展28
Hashable要求30
2.3Set31
集合代数32
索引集合和字符集合33
在闭包中使用集合34
2.4Range34
第3章集合类型协议37
3.1序列37
迭代器38
无限序列44
不稳定序列44
序列和迭代器之间的关系45
子序列46
3.2集合类型47
为队列设计协议48
队列的实现50
遵守Collection协议51
遵守ExpressibleByArrayLiteral协议54
关联类型55
3.3索引57
索引失效58
索引步进59
链表60
3.4切片70
实现自定义切片71
切片与原集合共享索引74
通用的PrefixIterator74
3.5专门的集合类型75
前向索引76
双向索引77
随机存取索引78
MutableCollection79
RangeReplaceableCollection80
3.6总结82
第4章可选值84
4.1哨岗值84
4.2通过枚举解决魔法数的问题86
4.3可选值概览88
iflet88
whilelet89
双重可选值92
ifvarandwhilevar94
解包后可选值的作用域95
可选链97
nil合并运算符99
可选值map101
可选值flatMap103
使用flatMap过滤nil104
可选值判等105
switch-case匹配可选值108
可选值比较109
4.4强制解包的时机109
改进强制解包的错误信息111
在调试版本中进行断言111
4.5多灾多难的隐式可选值113
隐式可选值行为113
4.6总结114
第5章结构体和类115
5.1值类型116
5.2可变性117
5.3结构体120
5.4写时复制127
写时复制(昂贵方式)129
写时复制(高效方式)130
写时复制的陷阱132
5.5闭包和可变性134
5.6内存135
weak引用137
unowned引用138
5.7闭包和内存139
结构体和类使用实践139
5.8闭包和内存142
引用循环143
捕获列表144
5.9总结145
第6章函数146
6.1函数的灵活性152
函数作为数据155
6.2局部函数和变量捕获161
6.3函数作为代理163
Foundation框架的代理163
结构体代理164
使用函数,而非代理165
6.4inout参数和可变方法167
嵌套函数和inout169
&不意味inout的情况170
6.5计算属性和下标171
延迟存储属性172
使用不同参数重载下标173
下标进阶175
6.6自动闭包175
@escaping标注177
6.7总结179
第7章字符串180
7.1不再固定宽度180
字位簇和标准等价181
7.2字符串和集合184
字符串与切片187
7.3简单的正则表达式匹配器189
7.4ExpressibleByStringLiteral192
7.5String的内部结构193
Character的内部组织结构199
7.6编码单元表示方式199
7.7CustomStringConvertible和
CustomDebugStringConvertible201
7.8文本输出流203
7.9字符串性能207
7.10展望211
第8章错误处理212
8.1Result类型213
8.2抛出和捕获214
8.3带有类型的错误216
8.4将错误桥接到Objective-C217
8.5错误和函数参数218
Rethrows220
8.6使用defer进行清理221
8.7错误和可选值222
8.8错误链223
链结果223
8.9高阶函数和错误224
8.10总结226
第9章泛型228
9.1重载228
自由函数的重载229
运算符的重载230
使用泛型约束进行重载231
使用闭包对行为进行参数化235
9.2对集合采用泛型操作236
二分查找236
泛型二分查找238
集合随机排列241
SubSequence和泛型算法244
重写与优化246
9.3使用泛型进行代码设计247
提取共通功能249
创建泛型数据类型250
9.4泛型的工作方式251
泛型特化253
全模块优化254
9.5总结255
第10章协议256
10.1面向协议编程258
协议扩展260
在协议扩展中重写方法260
10.2协议的两种类型262
类型抹消264
10.3带有Self的协议267
10.4协议内幕269
性能影响270
10.5总结271
第11章互用性272
11.1实践:封装CommonMark272
封装C代码库272
封装cmark_node类型273
更安全的接口278
11.2低层级类型概览284
11.3函数指针286
我经常会收到Swift学习者和使用者发来的电子邮件,问我应该怎么进一步提高自己的Swift水平,而在这种时候,我都会向他们推荐您手中的这本书——《Swift进阶》。
在2017年3月的Tiobe最受欢迎编程语言排行榜中,Swift首次进入前十名,已经将它的“前辈”Objective-C远远抛在脑后;而Swift3.0的开源及跨平台,也为这门语言的使用范围
和持续发展带来了前所未有的机遇和希望。
在Swift高速发展的今天,越来越多的Swift开发者不仅仅满足于完成开发任务,他们更希望能知道如何写出优秀的代码,如何优雅高效地实现功能,以及如何更灵活地使用这门语言来应对改变。想要做到这些,我们就需要做到知其然,并知其所以然。《Swift进阶》正是
一本向您介绍Swift的种种语言特性“所以然”的书籍。
本书的英文版由objc.io的创始人ChrisEidhof1,著名科技编辑和博主OleBegemann2以及一
直关注Swift的博客AirspeedVelocity3的幕后人员一同联合编写。原版书籍一经公布,就引
起了国外Swift社区的极大关注,可以说本书是国外高级Swift开发者几乎人手一本的必读物。书中深入浅出地剖析了Swift里深层次的实现细节以及设计思路。对于包括诸如内建集合类型的底层实现、泛型和协议的设计、Swift字符串的原理和使用逻辑、值类型和引用类型的适用场景和特点等话题,书中都进行了详细的分析。
本书通过这些细致和系统的解释,为我们揭示了Swift的设计哲学,让我们在学习Swift的过程中,从“身在此山”变为“高屋建瓴”。虽然在技术精进的道路上没有捷径,但若将前人的经验和总结的精华作为基础,确实能让我们事半功倍。
技术书籍总会面临版本变动和更新的问题。本书的英文原版是在2015年Swift2时发布的,其实该书的翻译工作也早在2015年年中就完成了。但是在Swift3中,Apple对这门语言进行了大幅的重塑和调正,本着对读者负责的态度,我们并没有急于推出本书的过时版本,而是在等待Swift趋于稳定后,直接以对应最新版本的形式进行发布。在能预见的未来中,Swift4及后续版本并不会发生像前序版本那样的大规模改动,因此我们认为学习和进阶Swift的时机已经成熟。《Swift进阶》一书在探讨问题时也对版本之间的差异进行了说明,让读者可以了解到技术变革的来龙去脉,并为未来的知识更新提前做好准备。
我们必须承认,在国内当前Swift的接受度和使用范围,已经与国外产生了一些差距。由此导致了Swift程序开发的平均水平也稍有落后。但我们相信这只是暂时的,随着Swift社区的日益强大,国内使用Swift的机会和应用场合,都会发生爆发式的增长。让更多的中国开发者有机会接触和了解Swift开发更深层次的内容,正是本书目的所在。
王巍
这本书的封面设计,绝对是那种一眼就能抓住眼球的类型。那种深邃的紫色,配合着银色的烫金字体,营造出一种既神秘又高级的科技感。拿到手里,你能感受到它厚实而又坚韧的触感,封面的材质非常特别,磨砂的质感让人爱不释手,完全没有普通书籍那种滑腻的感觉。翻开第一页,那种纸张的触感就让我眼前一亮,它不是那种容易反光的亮面纸,而是带有细微纹理的哑光纸,即使在灯光下阅读,也不会觉得刺眼,非常适合长时间的沉浸式学习。我还没来得及仔细阅读每一章的内容,但从这封面、材质和纸张的细节上,我就能感受到作者和出版社在图书制作上的极致追求。这不仅仅是一本技术书籍,更像是一件精心打造的工艺品,散发着专业与匠心。我迫不及待地想去探索它内部隐藏的知识宝藏,相信它一定能带给我惊喜。
评分吸引我购买这本书的原因,很大程度上是因为它的封面设计。那种独特的渐变色,从深邃的夜空蓝过渡到明亮的星辰白,仿佛预示着探索Swift编程的浩瀚宇宙。拿到书的那一刻,我就被它沉甸甸的质感所吸引,封面的材质是一种哑光处理,摸上去非常舒服,而且不容易留下指纹,这一点对于经常在各种场合阅读的我来说,简直是福音。翻开书页,我首先注意到的是纸张的质量,它不是那种廉价的、容易泛黄的纸,而是厚实且有一定韧性的纸张,印刷清晰,字迹锐利,即使是代码中的细小符号也能辨认无碍。我很喜欢这种排版风格,段落清晰,重点内容用不同的颜色或加粗来强调,让我在阅读时能够快速抓住核心信息,而不会感到信息过载。尽管我还没有开始深入研读具体的技术内容,但仅仅是这种精心设计的“外在”,就让我对这本书的内在品质充满了极高的期待,我相信它一定能带给我一场高质量的学习体验。
评分第一眼看到这本书,我就被它低调而又充满质感的封面所吸引。那种沉稳的蓝色调,搭配上简洁有力的文字,传递出一种专业而不失温度的感觉。拆开塑料包装的那一刻,一股淡淡的油墨香扑面而来,这种熟悉的味道总能瞬间勾起我作为一名开发者的阅读热情。打开书页,我惊喜地发现,它的纸张质量非常好,触感细腻,印刷清晰,即使是细小的代码片段也毫无模糊之感,这对于长时间的阅读来说,无疑是一个巨大的福音。排版方面,作者显然花了心思,段落之间的留白恰到好处,重点内容也得到了很好的突出,让整体阅读体验非常流畅,不会感到压抑或混乱。我还没来得及深入到具体的技术细节,但仅仅是这份精心打磨的“外在”,就足以让我对这本书的内在品质充满期待。我深信,一本在封面、纸张、排版上都如此用心的书,其内容一定也是经过千锤百炼,值得我去细细品味和钻研的。
评分这本书的封面设计简直太吸引人了,简洁的线条勾勒出“Swift进阶”几个字,辅以渐变的蓝色背景,传递出一种深邃而又充满活力的科技感。我拿到书的时候,第一感觉就是它不像市面上那些充斥着晦涩术语和复杂图表的“技术手册”,反而像一本精心打磨的艺术品。翻开扉页,印在纸上的字迹清晰有力,油墨的淡淡香气混合着纸张的清新,让人立刻有了阅读的冲动。目录部分的设计也很人性化,清晰地划分了各个章节,每一个标题都充满了引导性,让我对即将展开的旅程充满了好奇。虽然我还没有深入阅读具体内容,但仅仅从这本书的外观和排版上,我就能感受到作者和编辑团队在细节上的用心。它不仅仅是一本关于编程的书,更是一种对阅读体验的追求。我相信,当我在学习Swift的过程中遇到瓶颈或者想要更进一步探索的时候,它一定会成为我案头不可或缺的伙伴。我尤其期待书中可能蕴含的那些能够点亮我编程思路的“金句”,或许会像一盏盏明灯,指引我在Swift的世界里更加游刃有余。
评分我一直觉得,一本好的编程书,不应该仅仅是知识的堆砌,更应该是一种思想的启迪。这本书的包装就给我带来了这种感觉。它采用的是一种比较硬挺的封面材质,触感非常细腻,拿在手里很有分量。书脊的印刷也很工整,即使是放在书架上,也能一眼认出它来。我特别喜欢它的内页纸张,不是那种过于光滑的反光纸,而是略带哑光的,这样长时间阅读眼睛也不会感到疲劳。印刷的字号也恰到好处,疏密有致,阅读起来非常舒适。虽然我还没有来得及深入研究每一个章节的具体内容,但仅凭这外观和纸质,我就能感受到它背后所付出的努力。它让我觉得,这不仅仅是一本工具书,更是一件值得珍藏的物品。我迫不及待地想要去翻阅它,去感受作者是如何将那些复杂的Swift概念,用一种引人入胜的方式呈现出来的。我期待它能够为我打开一扇新的大门,让我看到Swift编程更广阔的可能性。
评分不错!!!!!!!
评分不错,虽说有点贵
评分书挺好的,应该是正版,看着挺舒服
评分可以
评分该死的,不想当程序员了正在为自己铺路
评分还好
评分很好的书,写的很不错,值得购买,很有用!
评分该死的,不想当程序员了正在为自己铺路
评分相信objc的质量,oc就是看objc进阶的
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有