虽然Swift编程语言已经问世一年多了,但该语言仍在不断地发展和演变。编写一本有关尚未稳定的编程语言的书籍,似乎有些令人可笑,但这正是本书所要做的事情。Swift虽然还在不停地变化,但它已不是新生儿。Swift并不知道Apple开发者预期的目的是什么。作为现代类型安全的语言,Swift已经确定了其基本法则,具体细节的实现就只能交给时间来解决了。
Swift让编程变得简单而快乐。它的结构和库呈现了崭新的方法,以便组织代码和处理数据,并执行无休止的日常任务。从面向协议和函数编程到优秀的闭包和代数数据类型,Swift提供了一种新的且令人兴奋的编程方式。使用Swift开发的时间越长,就越难回到之前的旧语言,因为旧语言中没有提供这些属于Swift的强大特性。
本书与传统的教程有所不同。无论你是否有编程经验,如果希望将现有的能力提升到一个新的高度,那么本书就是为你而写的。书中的每个重点章节都涵盖了实用技能。这些章节会指引你掌握Swift,并完成其中的基本开发任务。你不必从头到尾阅读本书(尽管你很喜欢这样做),而可以直接深入到你想学习的任何话题中,从讨论中获取你要学习的内容。
本书在笔者的工作中被视为一个令人振奋的项目。希望你能像我喜欢写本书一样喜欢阅读本书。
本书的组织结构
本书提供了一个实用的Swift开发专题调查。以下是本书各章的内容:
第1章,“欢迎使用Swift”——该章探讨如何使用Swift这种现代类型安全的编程语言来构建应用。在工作中使用不断变化的新语言并不总是一帆风顺。自从苹果公司推出Swift语言之后,该语言一直都在更新。从一个个beta版的发布到一个个release版的发布,这意味着一些新功能和新语法可能在下一个版本发布时就不再使用了。该章介绍了学习一种不断发展的语言意味着什么,以及如何在语言更新的同时移植代码。
第2章,“打印与映射” ——虽然编程是使用代码构建组件,但要牢记代码最终是为开发者和用户服务的。代码不仅仅需要编译,还应易于理解、上下连贯并且高效执行。该章讨论所有范围内的输出场景,从面向用户的写操作到面向开发者的调试支持。该章除了总结这些技术外,还探讨如何准确地建立反馈和文档并根据开发和调试需求输出相应内容。
第3章,“可选类型?!”——不像其他语言那样,Swift中的nil并不是指针。可以使用nil来安全地表示结构中潜在的有效或无效值。学习如何识别和使用可选类型是掌握Swift语言的重要一步。该章介绍了可选类型,为了检测nil支持的结构,需要在代码中创建、测试并成功地使用可选类型。
第4章,“闭包和函数”——闭包语法为方法、函数和“块”参数提供了基础,所有这些参数都是开发Swift应用的基础。通过封装状态和功能,促使了优秀结构的形成。该章讨论了闭包,展示了闭包在Swift中的工作方式以及如何更好地将其纳入应用中。
第5章,“泛型和协议”——泛型有助于构建健壮的代码,用以扩展单一类型之外的功能。泛型实现服务于一组数据类型,而不是某一种特定的数据类型。泛型类型和协议(行为合约)的组合,建立了强大而灵活的编程组合。该章介绍了这些概念,并且探讨了如何掌握那些在版本更新中经常令人迷惑的部分。
第6章,“错误”—— Swift中的“错误”和其他编程语言中一样,表示失败的事情。在日常开发任务中,你会遇到逻辑错误,即能正常编译运行,但无法达到预期效果。有时还会遇到由现实条件而产生的运行时错误,如缺少资源或访问了不可用的服务。Swift反馈机制包括断言导致的致命错误和支持恢复的错误类型,它们可以帮助定位问题,并提供运行时的解决方案。该章介绍“错误”,并帮助你了解如何处理各种故障。
第7章,“类型”——当提到类型时,Swift提供了三个不同寻常的类型系列。Swift的类型系统包括类(提供引用类型)、枚举和结构体(二者都为代数值类型)。为支持开发,每种类型都有独特的优势和功能。该章总结了Swift语言中常用的关键概念,并探讨了应用中类型的工作方式。
第8章,“杂记”——Swift是一种充满活力且正在不断发展的语言,在单一的框架内许多功能并不总是适用。该章介绍了一系列主题,虽然这些主题在本书找不到合适的对应章节,但仍然值得关注。
关于示例代码
在开源代码托管网站GitHub上可以找到本书的源码,网址为https://github.com/erica/ SwiftCookbook。在该网站上可以找到每章的源代码,其中涵盖了本书的所有示例。
可以使用git工具克隆整个仓库或者单击GitHub上的Download按钮来获取示例代码。在本书编写时,Download按钮位于网页右边中心位置 。通过下载ZIP归档文件能够获取整个仓库。
本书中文支持网站www.tupwk.com.cn/downpage上也提供了各章的源代码。
贡献
示例代码从来没有固定版本。它将随着苹果公司对Swift语言的更新继续演化。通过对bug提出修复和纠正建议以及通过扩展示例代码可以参与其中。GitHub允许你创建分支并添加自己的东西,最后合并到主分支进行分享。如果你想出了新点子或新方法,请告诉我。
了解GitHub
GitHub(http://github.com)是最大的Git托管网站,其中包含超过150 000个公共库。它提供免费托管的公共项目和付费托管的私有项目。它有一个自定义的Web界面,其中包括维基托管、问题跟踪,重要的是它还包括项目开发者的社交网络,这是寻找新代码或查找现有库的好地方。在GitHub网站上注册一个免费账户,然后才能复制和修改这些公有库或创建自己的开源iOS项目,以与他人分享。
联系作者
如果有关于本书的任何意见或问题,请给我发电子邮件到erica@ericasadun.com,或者在GitHub上给我留言。