我又拿起了《Kotlin核心编程》

《Kotlin核心编程》是水滴技术团队2019-4-15出版的,也不知道为啥这么火,网上搜Kotlin学习文档、书籍,除了Kotlin官方文档,其他大家极力推荐的就是此书了,读完以后才知道为什么。

首先,我是19年8月份入手的Kotlin核心编程,先是读了前面3章,但由于工作原因就先放下来了。不幸的是,今年新型冠状病毒导致的疫情异常严重,从刚开始的武汉封城,到城市小区、乡下农村,封区的封区,封乡的封乡,大门不出二门不迈,简直是无聊透顶。幸运的是,我有时间可以再次拿起这本书,好好品味下此书对Kotlin的见解,于是定了个计划,每天阅读4小时以上,预计本月完成,结果一口气提前完成了。

说说感受吧,整体上觉得是一本不错的书,通过和Java、Scala等高级语言的对比方式娓娓道来,确实是实力深厚的大牛才能写的出来。就如作者所说,它在工具属性上会显得稍弱,因为它主要探讨的是Kotlin到底是怎样一门编程语言。然而关于此书的内容,其实作者在内容简介已经介绍的很详细了,如果只是想了解此书的写作思想或者只是想了解Kotlin的基础内容,用上一点时间看看前面三章即可。

下面来看看每章的Body吧。第一章开篇带我们领略了Java、Scala(more than Java)、Kotlin(better Java)的语言特色,让我们知道了Kotlin语言的设计定位——更好的Java,以及Kotlin在继承面向对象编程范式的基础上积极拥抱函数式编程。第二章讲解基础语法,副作用的定义、高阶函数、“柯里化”风格、扩展函数、面向表达式编程等等,好多的新鲜事物,简单而又实用,收获满满。第三章是关于面向对象方面的内容,这章可以通过对比Java学习,让我了解Kotlin的同时更加了解了Java及其面向对象的基本构造,我觉得这章对我们实战Kotlin以及理解Kotlin至关重要。第四章讲解的代数数据类型(ADT)还有模式匹配,看的时候能理解ADT,回过头再看时忘了一半,估计后面没用到的话又得重新学习,不过4.3.3讲解的访问者设计模式是深入阅读了,并输出博客代码加深印象。

package com.agg.kotlinapplication
 
sealed class Target {
    abstract fun accept(v: Visitor): Boolean
 
    class Num(val value: Int) : Target() {
        override fun accept(v: Visitor): Boolean = v.visit(this)
    }
 
    class Operate(val name: String, val left: Target, val right: Target) : Target() {
        override fun accept(v: Visitor): Boolean = v.visit(this)
    }
}
 
class Visitor {
    fun visit(target: Target.Num): Boolean = false
    fun visit(target: Target.Operate): Boolean = when (target) {
        Target.Operate("+", Target.Num(0), target.right) -> true
        Target.Operate("+", target.left, Target.Num(0)) -> true
        else -> false
    }
}

第五章不能错过关于null的讨论、Any、以及泛型的协变(extends)逆变(super)。第六、七章讲的Lambda、集合和多态、扩展,其实更多是可以学习来提升代码的质量。第八章的元编程稍微高级点,设计反射、注解等,不过也好理解,自己觉得需要的时候再去细读就可。第九章设计模式,自己是细看了的并且敲代码加深印象呀。第十章、十一章、十二章、以及最后一章十三章,大家都知道放在后面的章节就看自己精力阅读咯,我是基本上认真看了章节前面的知识,章节后面的深入部分就略读了,毕竟要根据自己实际情况不要去愚公移山。

好久没这么去记录一本专业书籍了,上一次还是看完《Java编程思想》呢,话说虽然此书不及它,但能将Kotlin的设计思想理解这么透彻,并且还写书了,确实是很大牛了。总的来说,挺喜欢此书的写作风格,它的存在丰富着Kotlin世界的一部分,包括我在内的很多人都会因此而收益,感谢作者——水滴技术团队。

向大牛致敬!

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值