请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 1101|回复: 4

[Android] Kotlin函数初步系列——疯狂Kotlin讲义

[复制链接]
发表于 2017-11-29 13:38:22 | 显示全部楼层 |阅读模式
本帖最后由 kongyeeku 于 2018-2-1 23:25 编辑
本文节选自《疯狂Kotlin讲义》
京东购买地址:https://item.jd.com/12284595.html
当当购买地址:http://product.dangdang.com/25221010.html

本书对Kotlin的解读十分全面、深入,并非一本简单介绍Kotlin语法的图书,很多地方都会结合Java语法、底层字节码进行讲解。如果读者有较好的Java功能,阅读本书能更清晰地看清Java与Kotlin之间的差异,便于快速上手Kotlin;对于没有Java功底的读者,可选择忽略将二者进行对比的部分,直接学习本书也可掌握Kotlin语言的编程。
由于Kotlin最先设计成运行在JVM上的编程语言,因此Kotlin具有和Java天然的相似性,但在Java设计不足的地方又做了大量的补充、改进,因此本书也能让你更好地理解Java、更好地理解Java存在的一些不足。这样说并不代表Java不优秀,“知其雄,守其雌,为天下谿”,只有深入理解Java,这样才能更好地感悟Java的优秀。
总结起来,本书有如下几个特点:
1.逻辑结构更合理
本书在内容体系上将函数式编程和面向对象编程独立开来,先介绍函数式编程部分,再介绍面向对象编程,更符合Kotlin语言本身的知识体系,而不是像某些资料一会儿函数,一会儿面向对象,搅得读者晕头转向。实际上,无论是经典的《C++ Primer》,还是Swift官方文档(甚至Kotlin官方文档),几乎没见过哪本经典的图书或文档一会儿函数、一会儿面向对象地介绍。
介绍知识时,本书会先详细讲解各种知识点的理论,再通过示例演示Kotlin各理论的用法,将知识点融合在示例中,符合读者的认知、学习规律。
另外,整本书的知识具有和《疯狂Java讲义》大致相同的脉络,所以《疯狂Java讲义》的读者会很容易上手。
2.讲解深入本质
Kotlin是JVM语言,所以很多东西其实是受到Java的影响的。书中会对一些看似奇怪的语法从字节码文件层次进行剖析,让读者更好地理解Kotlin与Java的对应关系。
比如主构造器和次构造器到底是什么?Java构造器并不区分主次,为什么Kotlin搞出这两个东西?主、次构造器为何要委托父类构造器?委托父类构造器时为什么存在区别?主、次构造器生成字节码之后到底对应Java的哪个部分?这一点在本书7.5节有深入讲解。
再比如Java本身不支持扩展,那么Kotlin的扩展是如何在JVM上运行的?难道Kotlin改造了JVM吗?Java本身不支持扩展,那Java是否可以调用Kotlin扩展的成员吗?这些问题需要从字节码层次进行剖析,本书在8.1节有深入讲解。
再比如Java泛型的上限、下限的本质是什么?Kotlin泛型的声明处型变和使用处型变的本质是什么?与Java的对应关系是怎样的?Java本身并不支持声明处型变,那为何JVM能支持Kotlin的声明处型变?这些问题可以在本书11章找到答案。
3.知识内容更全面
本书内容超过Kotlin官方文档本身的覆盖,比如介绍反射的章节就超过Kotlin官方文档。本书反射部分不仅更详细地介绍如何获得类、函数、属性的引用,而且真正从API级别介绍KClass、KCallable、KFunction、KProperty,KProperty0、KProperty1、KProperty2的用法,以及它们的内在关联,并实实在在地教读者掌握如何用Kotlin反射动态创建对象、动态调用方法。

本文节选了《疯狂Kotlin讲义》第6章关于Kotlin函数和Lambda表达式的部分相关内容,还有更多关于Kotlin的Lambda表达式的高级内容、局部函数、内联函数的相关内容,依然保留在《疯狂Kotlin讲义》中。

定义和调用函数——Kotlin函数入门之一
函数返回值和Unit——Kotlin函数入门之二
递归函数——Kotlin函数入门之三
单表达式函数—— Kotlin函数入门之四
命名参数——Kotlin函数的参数之一
形参默认值——Kotlin函数的参数二
尾递归函数——Kotlin函数之三
个数可变的形参——Kotlin函数之四
Kotlin函数重载
Kotlin局部函数
使用函数类型——Kotlin高阶函数之一
使用函数类型作为形参类型——Kotlin高阶函数之二
使用函数类型作为返回值——Kotlin高阶函数之三
回顾局部函数——Lambda表达式之一
使用Lambda表达式代替局部函数——Lambda表达式之二
Lambda表达式的脱离——Lambda表达式之三

发表于 2017-12-14 21:50:29 | 显示全部楼层
李老师这本书什么时候上市啊,我看网上说是今年11月,但是现在好像还没有买的地方。
 楼主| 发表于 2017-12-14 22:06:14 | 显示全部楼层
hdparrot 发表于 2017-12-14 21:50
李老师这本书什么时候上市啊,我看网上说是今年11月,但是现在好像还没有买的地方。 ...

起码都要等到这个月底了。现在才刚刚拿去印,听说北京那边着火了,所以印刷进度很慢。
发表于 2017-12-14 22:56:55 | 显示全部楼层
嗯,知道了,到时候一定买一本。
 楼主| 发表于 2018-2-1 23:09:20 | 显示全部楼层
新书上市了
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满
微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2019-8-24 21:20 , Processed in 0.153813 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表