Kotlin 核心编程:送书,速来

Kotlin 核心编程 福利 送书

论坛看到有小伙伴咨询入门书籍,我们又争取到了送书的福利!

自拿到了《Kotlin 核心编程》(以下简称『核心编程』)这本书,即便是通读了一遍之后,我到现在也是没事儿就翻一翻,特别是函数式编程这块儿,时不时还会有新的收获。

『核心编程』的作者在更早的时候是经验丰富的 Scala 开发者,这一点从书中多处拿 Kotlin 跟 Scala 做对比来升华知识点的讲解就可见一斑。Scala 是一门集大成的语言,我们都知道它很难,原因嘛,高手秀肌肉设计出来的语言当然是你能想到的特性它支持,你想不到的特性它也支持,你既能用它写出一目了然的白话文,也能写出晦涩难懂的黑魔法。它太灵活了,我虽然没有在生产环境中用过 Scala,但为了学好 Kotlin,理解 Kotlin 语法设计的初衷,也花过一些时间来认真了解这门语言,通读了《快学 Scala》之后,我发现 Kotlin 当中可能有 80% 的特性或多或少『抄袭』『借鉴』或者『规避』了 Scala 的语法。

Kotlin 的设计者在设计之初也许就是想要将 Kotlin 设计成一个精炼实用易上手的 Scala 和一个简洁灵活现代化的 Java。

这样看来,Java 开发者转 Kotlin 需要接触非常多陌生的概念,例如属性、object、companion object、泛型型变、高阶函数等等,而这些 Scala 本身就有,Scala 开发者的视角看 Kotlin 的感觉处处很熟悉。『核心编程』这本书相比你看到的其他国内出版的 Kotlin 书籍有一个很大的特点就是视角丰满了很多,国内的书籍普遍存在抄官方文档的毛病在这本书里面根本见不到,这本书也许是你在阅读官方文档产生疑惑时最好的补充材料之一。

大家都在讲高阶函数,我们知道高阶函数就是参数或返回值类型是函数类型的函数,那么为什么它就是高阶函数了呢?书中给出了解释:

一阶值构造器:通过传入一个具体的值,来得到另一个具体的值。

那么 二阶值构造器 呢?那就是传入一个具体的值或者传入一个 一阶值构造器 来得到一个具体的值或者另一个 一阶值构造器 。这样高阶函数的概念就很清楚了。

说到这儿我倒是想起数学里面,二次函数求一阶导数的结果是一次函数,求二阶导数的结果就相当于一次函数求一阶导数,结果就是常数。

当然,书里面其实是对比高阶函数介绍高阶类型的,尽管 Kotlin 不支持高阶类型,但了解这个概念是有意义的,且不说也许哪天 Kotlin 为了进一步支持函数式编程中 typeclass 的定义引入高阶类型。

这样讲是不是『核心编程』不适合入门呢?

其实也不是,前几章的内容还是非常基础的,这也是 Kotlin 对 Java 友好的地方,你可以在 Kotlin 当中找到至少一半儿与 Java 接近的概念,Java 开发者能够轻松驾驭这部分内容。即便是这样基础的内容,『核心编程』除了讲清楚知识之外,也有细致的思考,例如: AnyAny? 的继承关系究竟是怎样的?

这样的问题我在读到这本书之前没有真正想过,甚至不觉得这是个问题,但细细想来,如果我们对这二者的关系的理解总是含混不清,对于不少类型相关的概念将会难以深入理解和掌握。

好啦,说了这么多,不就是为了推荐这本书吗?我们不仅推荐,而且还专门联系 华章出版社 的老师再搞一次送书活动,活动的规则如下:

  • 活动形式: 点击阅读原文到论坛活动页回复大家学习 Kotlin 的经历和感悟 ,回复中 赞数最多的前五名 将有机会获得赠书。

  • 活动时间:即日起至 2019年11月5日上午6点整

当然,等不及的小伙伴也可以直接点击下方链接进入京东或当当购买~

我来评几句
登录后评论

已发表评论数()

相关站点

热门文章