描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787519892395
“本书出色地将Swift知识凝练为一本同时面向初学者和编程老手的书,对初学者来说,这本书非常浅显易懂,对经验丰富的老手而言,这也是一本很不错的参考书。”
——Ish ShaBazz
Illuminated Bits LLC创始人
Swift是Apple开发iOS、iPadOS、macOS、watchOS和tvOS应用所选择的编程语言,并因此而闻名,但它的作用远不止于此。开源的Swift逐步成为系统编程和服务器端代码的开发语言,而且能够在Linux和Windows上运行。那么从哪里开始呢?利用这本书,我们会从基础开始:从收集和控制数据,到重用代码和生成定制数据类型,以及利用SwiftUI通过编写协议驱动的安全代码构建程序和用户界面。掌握了Swift,你将能构建各种不同的应用,从移动和Web应用到游戏、框架、命令行工具等等应用都可以使用Swift开发。
简要目录
引言 xxi
1 认识Swift:应用、系统以及更多! 1
2 大名鼎鼎的Swift:Swift天赋异禀 29
3 收集和控制:整理数据 55
4 函数和枚举:按需重用代码 97
5 闭包:灵活有趣的函数 133
6 结构体、属性和方法:定制类型及其他 161
7 类、角色和继承:继承问题 193
8 协议和扩展:Swift礼仪 219
9 optional,解包,泛型及其他:没有选择 253
10 SwiftUI入门:快速构建Swift用户界面 281
11 SwiftUI实践应用:圆,计时器还有按钮——天呐! 327
12 应用、Web以及更多:综合在一起 357
索引 397
如何使用这本书引言谁适合看这本书?谁可能不适合看这本书?如果能对所有这些问题回答“是”:你有一个能运行macOS或iPadOS最新公开版本的设备吗?你是不是想使用Swift编程语言学习编程原则,从而能进一步探索Swift世界?你是不是想将来为iPhone或Apple生态系统中的任何其他设备创建应用,或者想学一个强有力的开源语言来开发Web应用?那么,这本书正是你需要的。谁可能不适合看这本书?如果满足下面任何一种情况:你已经是一个能力很强的macOS、iOS或Swift开发人员,想要一本参考书。你不想成为一个程序员,也不想学写代码。你不喜欢披萨、美食和饮料,也不喜欢蹩脚的笑话。那么,这本书不适合你。我们知道你在想什么“这也算一本正式的Swift书吗?”“这些图都用来做什么?”“我真能这样学吗?”我们也知道你的大脑正在想什么你的大脑总是渴求一些新奇的东西。它一直在搜寻、审视、期待着不寻常的事情发生。大脑的构造就是如此,正是这一点才让我们能够与时俱进。我们每天都会遇到许多按部就班的事情,对于这样一些平常的或者普通的事情,你的大脑是怎么处理的呢?它的做法很简单,就是不让这些平常的东西妨碍大脑真正的工作。那么什么是大脑真正的工作呢?就是要记住那些确实重要的事情。它不会费心地去记乏味的东西,就好像大脑里有一个筛子,这个筛子会筛掉“显然不重要”的东西,如果遇到的事物枯燥乏味,就无法通过这个筛子。那么你的大脑怎么知道到底哪些东西重要呢?打个比方,假如你某一天外出旅行,突然一只大老虎跳到你面前,此时此刻,你的大脑和身体会做何反应?神经元会“点火”,情绪爆发,释放出一些化学物质。好了,这样你的大脑就会知道这肯定很重要! 不能忘记!不过,假如你正待在家里或者坐在图书馆里,这里很安全、很舒适,肯定没有老虎。你正在刻苦学习,为考试做准备。也可能想学一些比较难的技术,你的老板认为掌握这种技术需要一周时间,最多不超过十天。这就存在一个问题。你的大脑很想给你帮忙。它会努力地把这些显然不太重要的内容赶走,保证这些东西不去侵占不算充足的脑力资源。这些资源最好还是用来记住那些确实重要的东西,比如大老虎,遭遇火灾等。再比如,你的大脑会让你记住,绝对不能把聚会时狂欢的照片发到Facebook上。没有一种简单的办法告诉你的大脑:“嘿,大脑,真是谢谢你了,不过不管这本书多没意思,也不管现在我对它多么无动于衷,但我确实希望你能把这些东西记下来。”如何使用这本书我们认为“Head First”读者是学习者。那么,怎么学习呢?首先必须获得知识,然后保证自己确实不会忘记。这可不是填鸭式的硬塞。根据认知科学、神经生物学和教育心理学的最新研究,学习的途径很多,绝不只是通过书本上的文字。我们知道怎么让你的大脑兴奋起来。下面是一些Head First学习原则:看得到。与单纯的文字相比,图片更能让人记得住,通过图片,学习效率会更高(对于记忆和迁移型的学习,甚至能有多达89%的效率提升)。而且图片更容易理解。以往总是把图片放在一页的最下面,甚至放在另外的一页上,与此不同,把文字放在与之相关的图片内部,或者在图片的周围写上相关文字, 学习者的能力就能得到多至两倍的提高,能更好地解决有关的问题。采用一种针对个人的交谈式风格。最新的研究表明,如果学习过程中采用一种第一人称的交谈方式直接向读者讲述有关内容,而不是干巴巴地说教,学生在学习之后的考试中成绩会提高40%。正确的做法是讲故事,而不是做报告。要用通俗的语言。另外不要太严肃。如果你面对着这样两个人,一个是你在餐会上结识的有意思的朋友,另一个人学究气十足,喋喋不休地对你说教,这两个人中,你会更关注哪一个?让学习者想得更深。换句话说,除非你很积极地让神经元活动起来,否则你的头脑里什么也不会发生。必须引起读者的好奇,促进、要求并鼓励读者去解决问题、得出结论、产生新的知识。为此,需要发出挑战,留下练习题和拓宽思路的问题,并要求读者完成一些实践活动,让左右脑都开动起来,而且要利用到多种思维。引起读者的注意,并保持关注。我们可能都有过这样的体验,“我真的想把这个学会,不过看过一页后实在是让我昏昏欲睡”。你的大脑注意的是那些不一般、有意思、有些奇怪、抢眼的、意料之外的东西。学习一项有难度的新技术并不一定枯燥。如果学习过程不乏味,你的大脑很快就能学会。影响读者的情绪。现在我们知道了,记忆能力很大程度上取决于所记的内容对我们的情绪有怎样的影响。如果是你关心的东西,就肯定记得住。如果让你感受到了什么,这些东西就会留在你的脑海中。不过,我们说的可不是什么关于男孩与狗的伤心故事。这里所说的情绪是惊讶、好奇、觉得有趣、想知道“是什么”,还有就是一种自豪感,如果你解决了一个难题,学会了所有人都觉得很难的东西,或者发现你了解的一些知识竟是那些自以为无所不能的傲慢家伙不知道的,就会有一种自豪感油然而生。元认知:有关思考的思考如果你真的想学,而且想学得更快、更深,就应该注意你怎样才会专注起来,考虑自己是怎样思考的,并了解你的学习方法。我们大多数人长这么大可能都没有上过有关元认知或学习理论的课程。我们想学习,但是很少有人教我们怎么来学习。不过,这里可以做一个假设,如果你手上有这本书,你想学习如何用Swift编程,而且可能不想花太多时间。如果你想把这本书中读到的知识真正用起来,就需要记住你读到的所有内容。为此,必须理解这些内容。要想最大程度地利用这本书或者任何其他的书或学习经验,就要让你的大脑负起责任来,要求它记住这些内容。怎么做到呢?诀窍就在于要让你的大脑认为你学习的新东西确实很重要,对你的生活有很大影响。就像老虎出现在面前一样。如若不然,你将陷入旷日持久的拉锯战中,虽然你很想记住所学的新内容,但是你的大脑却会竭尽全力地把它们拒之门外。那么究竟怎么才能让你的大脑把Swift看做是一只饥饿的老虎呢?有两条路,一条比较慢,很乏味。另一条路不仅更快,还更有效。慢方法就是大量地重复。你肯定知道,如果反反复复地看到同一个东西,即便再没有意思,你也能学会并记住。有了足够的重复,你的大脑就会说,“尽管看上去这对他好像不重要,不过,既然他这样一而再、再而三地看同一个东西,所以我觉得这应该是重要的。”更快的方法是尽一切可能让大脑活动起来,特别是不同类型的大脑活动。如何做到这一点?上一页介绍的就是很好的做法,而且经证实,它们确实有助于你的大脑全力以赴。例如,研究表明,把文字放在所描述的图片当中(而不是放在这一页的别处,比如作为标题,或者放在正文中),这样会让你的大脑更多地考虑这些文字与图片之间有什么关系,这就会让更多的神经元点火。让更多的神经元点火 = 你的大脑更有可能认为这些内容值得关注,并且可能需要记下来。交谈式风格也很有帮助,当人们意识到自己在与“别人”交谈时,通常会更专心,这是因为他们总想跟上谈话的思路,并能适当地对话。让人惊奇的是,大脑并不关心“交谈”的对象究竟是谁,即使你只是与一本书“交谈”,它也不会在乎!另一方面,如果写作风格很呆板、干巴巴的,你的大脑就会觉得,这就像坐在一群人当中听报告,很乏味,所以不必在意对方说的是什么,甚至可以打瞌睡。不过,图片和交谈风格还只是开始,我们能做的还有很多如何使用这本书我们是这么做的我们使用了图片,因为你的大脑更能接受看得见的东西,而不是纯文字。对你的大脑来说,一幅图顶万言。如果既有文字又有图片,我们会把文字嵌在图片当中,因为文字位于所描述的图片中时,大脑会更有效地工作,倘若把这些描述文字作为标题,或者“淹没”在其他位置的大段文字里,就达不到这种效果了。我们采用了重复手法,会用不同方式,采用不同的媒体类型,运用多种感官来了解同一个东西,目的是让这些内容能植根于大脑中的多个区域。我们会用意想不到的方式使用概念和图片,因为你的大脑喜欢新奇的事物。我们使用的图和概念至少包含某种情绪,因为如果有情绪,你的大脑就会更投入。这会让你感觉这些东西更应该记住,尽管这种感觉可能只是有点幽默,让人奇怪或者比较感兴趣而已。我们采用了一种个性化的交谈式风格,因为如果大脑认为你在参与一个会谈,而不是被动地听一场演讲,它会更加关注。即使实际上你在读一本书,也就是说在与书“交谈”,而不是真正与人交谈,但这对你的大脑来说并没有什么分别。我们在这本书里加入了80多个实践活动,因为与单纯的阅读相比,如果能实际做点什么,你的大脑会更乐于学习,也更容易记住。这些练习都是我们精心设计的,有一定的难度,但是确实能做出来,因为这是大多数人所希望的。我们采用了多种学习方式,尽管你可能想循序渐进地学习,但是有些人可能希望先对整体有一个全面的认识,另外可能还有一些人只是想看一个例子。不过,无论你想怎么学,以多种方式表述相同的内容对每一个人都有好处。这里的内容不只是涉及左脑,也不只是让右脑有所动作,我们会让你的左右脑都开动起来,因为你的大脑参与得越多,你就越有可能学会并记住,而且能更长时间地保持注意力。如果只有一半大脑在工作,通常意味着另一半有机会休息,这样你就能更有效率地学习更长时间。我们会讲故事,做练习,从多种不同的角度研究同一个问题,这是因为,如果要求大脑做一些评价和判断,它会学习得更深入。我们通过练习提出了一些挑战,还会问一些问题,这些问题不一定有直接的答案,因为如果让大脑动起来解决一些难题,它就更容易学会并记住。想想吧,如果只是在体育馆里看着别人流汗,这对于保持你自己的身材肯定不会有什么帮助。不过另一方面,我们会竭尽所能不让你钻牛角尖,而是能把功夫用在该用的地方。也就是说,你不会纠结于一个难懂的例子,也不会花太多时间去弄明白一段艰涩难懂、通篇术语的文字,我们的描述也不会太过简洁而让人不明所以。我们用了拟人手法。在故事中,在例子中,还有在图中,你都会看到人的出现,这是因为你是一个人,你的大脑更关注人而不是其他事物。重要说明要把这作为一个学习过程,而不要简单地把它看作一本参考书。我们在规划内容的时候有意做了一些删减,只要是对有关内容的学习有妨碍,我们都会毫不留情地删掉。另外,第一次看这本书的时候,要从第一页从头看起,因为书中后面的部分会假定你已经看过而且学会了前面的内容。首先我们会一点一点地介绍Swift的概念,有了基础之后,才会综合应用这些概念。你可能现在就想写应用,不过除非已经了解变量和常量(以及很多其他概念)如何工作,否则你无法为iPhone编写应用。所以,在做更多工作之前,我们要从基础做起。你以后会感谢我们的。我们不会面面俱到。有很多Swift知识需要学习,另外,市面上也有大量很不错的Swift书(甚至其中一些是我们写的),分别面向不同水平的读者。这本书不打算一一介绍Swift的方方面面。我们只介绍入门所需了解的部分内容,掌握这些知识足以让你充满信心。我们选择了最好的部分来学习。用Swift创建UI有很多方法,从AppKit到UIKit再到SwiftUI。这本书选择学习SwiftUI的部分内容,而不介绍其他方法。不过,因为你已经在这本书中了解了这些基础,你会发现,以后想学习AppKit时会更为容易。书里的实践活动不是可有可无的。这里的练习和实践活动不是可有可无的装饰和摆设。它们也是这本书的核心内容。其中有些练习和活动有助于记忆,有些能帮助你理解,还有一些对于如何应用所学的知识很有帮助。千万不要跳过这些练习。只有填字游戏不要求一定完成,不过你的大脑可以利用这个好机会考虑之前在不同上下文中学习的单词和术语。我们有意安排了许多重复,这些重复非常重要。Head First系列的书有一个与众不同的地方,这就是,我们希望你确确实实地学会,另外,希望在学完这本书之后你能记住学过了什么。大多数参考书都不太重视重复和回顾,但是由于这是一本有关学习的书,你会看到一些概念以不同方式反复出现很多次。示例尽可能简洁。读者告诉我们,为了找出想要理解的两行代码而要费劲地查看200行代码,这实在是让人很头疼。这本书中的大多数例子都没有太多的上下文,以保证你真正要理解的那一部分清晰而简单。所以不要期望这里给出的所有示例都是健壮的,甚至可能并不完整。编写这些例子是为了学习,它们不一定功能完备。我们把很多代码放在网上,学习过程中,你可以将这些代码复制粘贴到Playgrounds和Xcode。代码的下载地址为:https://secretlab.com.au/books/head-first-swift。“Brain Power(头脑风暴)”练习没有答案。有一些头脑风暴练习并没有正确答案,还有一些头脑风暴活动的学习过程就是让你确定你的答案是否正确,以及在什么情况下正确。有些头脑风暴练习中,你会得到一些提示,为你指明正确的方向。O’Reilly在线学习40多年来,O’Reilly Media致力于提供技术和商业培训、知识和卓越见解,以帮助众多公司取得成功。我们拥有独一无二的专家和创新者的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly和200多家其他出版商提供的大量教材和视频资源。更多有关信息请访问http://oreilly.com。致技术审校:非常感谢帮助这本书精益求精的所有人。他们花费大量时间反复审阅,确保没有错漏,避免我们做傻事。我们可能没有一一回应你们的所有建议,不过那些建议确实让这本书更加出色。特别要感谢Tim Nugent、Nik Saers和Ishmael Shabazz。
评论
还没有评论。