介绍
这本书面向初学者和有经验的程序员。
如果您没有编程知识,那么您是一个初学者,但是“有决心”是因为我们会给您足够的知识,让您自己摸索出来。完成学习后,您将对编程和Kotlin有扎实的基础。
如果您是有经验的程序员,请直接跳到总结 1和总结 2,然后从那里继续。
书名中的“Atomic”指的是原子作为最小的不可分割单位。在本书中,我们试图每章只介绍一个概念,因此这些章节无法再细分,因此我们将它们称为原子。
概念
所有编程语言都由特性组成。您可以将这些特性应用于产生结果。Kotlin非常强大,它不仅具有丰富的特性集,而且通常可以用多种方式表达这些特性。
如果所有内容都被过度迅速地介绍给您,您可能会觉得Kotlin“太复杂”。
本书试图避免让您感到不知所措。我们以仔细和有意识的方式教授语言,遵循以下原则:
- 小步和小胜。我们摆脱了章节的束缚。相反,我们将每个小步作为一个原子概念或简称为原子来呈现,它看起来像一个小章节。我们尽量每个原子只介绍一个新概念。一个典型的原子包含一个或多个小的可运行代码片段及其输出结果。
- 没有向前引用。在尽可能的情况下,我们避免说,“这些特性将在后面的原子中解释”。
- 没有引用其他编程语言。除非必要,否则我们不会这样做。一个你不了解的语言中的特性的类比并不有帮助。
- 展示而非叙述。我们更喜欢通过示例和输出来展示一个特性。看到代码中的特性比用语言描述更好。
- 实践优于理论。我们首先展示语言的机制,然后再解释这些特性的存在原因。这与“传统”教学相反,但通常效果更好。
如果您了解特性,就可以理解其含义。通常情况下,理解一页Kotlin代码比理解另一种语言中的等效代码要容易得多。
索引在哪里?
本书是使用Markdown编写的,并使用Leanpub生成。不幸的是,Markdown和Leanpub都不支持索引。然而,通过创建最小可能的章节(原子),每个原子只包含一个主题,目录就充当了一种索引的作用。此外,电子书版本允许在整本书中进行电子搜索。
交叉引用
书中对原子的引用如下所示:Introduction,在这种情况下,它指的是当前的原子。在各种电子书格式中,这将生成一个到该原子的超链接。
格式
在本书中:
- 斜体引入一个新的术语或概念,并有时强调一个想法。
等宽字体
表示程序关键字、标识符和文件名。代码示例也使用这种字体,并在电子书版本中进行了着色。- 在散文中,我们在函数名后面加上空括号,例如
func()
。这提醒读者他们正在查看一个函数。 - 为了使电子书在所有设备上易于阅读并允许用户增大字体大小,我们将代码清单的宽度限制在47个字符以内。有时这需要妥协,但我们认为结果是值得的。为了实现这些宽度,我们可能会删除许多格式样式中可能包含的空格,特别是我们使用两个空格缩进而不是标准的四个空格缩进。
试读本书
我们在AtomicKotlin.com提供了一本电子书的免费试读样本。样本包括前两个章节的全部内容,以及几个后续的原子。这样,您可以尝试阅读这本书,然后决定是否适合您。
完整的书籍以纸质书和电子书的形式出售。如果您喜欢我们在免费样本中所做的内容,请支持我们,通过购买您使用的内容来帮助我们继续工作。我们希望这本书对您有所帮助,并感谢您的支持。
在互联网时代,似乎不可能控制任何信息。您可能会在许多地方找到本书的电子版本。如果您目前无法购买本书并从这些网站下载了它,请“回报”。例如,一旦您学会了这门语言,帮助其他人学习它。或者以任何他们需要的方式帮助他人。也许将来您会变得更好,然后可以为本书付费。
练习和解答
《Kotlin原子》中的大多数原子都附带了一些小练习。为了加深您的理解,我们建议在阅读完原子后立即解决这些练习。大多数练习可以通过JetBrains IntelliJ IDEA集成开发环境(IDE)的Edu Tools插件自动检查,因此您可以查看自己的进度并在卡住时获得提示。
您可以在http://AtomicKotlin.com/exercises/找到以下链接。
要解决这些练习,按照以下教程安装带有Edu Tools插件的IntelliJ IDEA:
在课程中,您将找到所有练习的解答。如果您在解决练习时遇到困难,请查看提示或尝试偷看解答。我们仍然建议您自己实现它。
如果在设置和运行课程时遇到任何问题,请阅读故障排除指南。如果这不能解决您的问题,请按照指南中提到的方式联系支持团队。
如果您发现课程内容中的错误(例如,任务的测试产生错误的结果),请使用我们的问题跟踪器报告问题,这是预填充的表单。请注意,您需要登录到YouTrack。感谢您花时间帮助我们改进课程!
研讨会
您可以在AtomicKotlin.com找到关于实时研讨会和其他学习工具的信息。
会议
布鲁斯组织开放空间会议,例如Winter Tech Forum。订阅邮件列表,以便在AtomicKotlin.com上获得有关我们活动和演讲的信息。
支持我们
这是一个大项目。制作这本书和配套的支持材料需要时间和精力。如果您喜欢这本书,并希望看到更多类似的东西,请支持我们:
- 博客、推特等,告诉您的朋友。这是一次基层的营销活动,您所做的一切都将有所帮助。
- 购买本书的电子书或印刷版,请访问AtomicKotlin.com。
- 检查 AtomicKotlin.com 上的其他支持产品或活动。
关于我们
布鲁斯·埃克尔(Bruce Eckel)是《Java编程思想》和《C++编程思想》等多项屡获殊荣的著作的作者,他还写了其他关于计算机编程的书籍,包括《Atomic Scala》。他在世界各地进行了数百场演讲,并举办了类似Winter Tech Forum和开发者撤退等的替代性会议和活动。布鲁斯拥有应用物理学学士学位和计算机工程硕士学位。他的博客位于www.BruceEckel.com,他的咨询、培训和会议业务是Mindview LLC。
Svetlana Isakova起初是Kotlin编译器团队的成员,现在是JetBrains的开发者倡导者。她教授Kotlin,并在世界各地的会议上发表演讲,并且是书籍《Kotlin in Action》的合著者。
致谢
- Kotlin语言设计团队和贡献者。
- Leanpub的开发人员,使出版这本书变得更加容易。
献辞
为我敬爱的父亲E. Wayne Eckel。1924年4月1日-2016年11月23日。您首先教会我有关机器、工具和设计的知识。
为我的父亲Sergey Lvovich Isakov,他过早地离开了我们,我们将永远怀念他。
封面说明
Daniel Will-Harris根据Kotlin标志设计了封面。