Kotlin学习笔记-[优缺点]
2017-08-17 本文已影响192人
王岩_shang
前言
kotlin作为官方认证的Android的首先开发语言,其优势自然不言而喻。
优势
从上一篇编译过程,我们也大致了解到经过词法分析,语法分析,语义分析,而后转化为中间代码,最后生成java字节码,这一步,也是可以转化为其他类型的代码的。
- 完美支持java,和原生java交互。支持js。
- 现代工程实践的完美产物。
- 提倡组合,少用继承,类定义默认为final。
- 空安全。
- 扩展和委托。
- IDEA 的完美支持,接入特别方便。
......
劣势
然而,工程上的使用也有一些问题需要注意到:
-
我们在导入kotlin时,伴随而来的是一个支持库,会被编译到我们的apk中。大致有将近6000个方法,可见包大小必然会增加。
Kotlin支持库 - 另外在我们书写代码时,虽然是简化了我们书写,但是编译后生成的代码并不一定会少,反而会增加。如下面两个类,TestActivity是Kotlin写的,Test2Activity是java写的。同样的功能,但是TestActivity里的方法居然增加了。大致原因可以看下这篇博客:Kotlin属性引发的方法数问题
Kotlin VS Java 方法数 - Kotlin 对于编译时注解。我们在使用java编程时,常用到编译时注解。显而易见,apt是在javac 的过程中作用,而Kotlin 也是属于原生代码的,并不会生成.java文件。Kotlin对其的支持不是很好,推出了kapt ,现在功能比较缺失,这里也不好应用到生产环境。
总结
- 其实,我们在写一些新的项目时,可以完全的上手Kotlin,在写代码时注意一些属性的定义,尽量减少方法数的快速膨胀。
Kotlin的函数式编程方式也可以使你的代码更加的优雅:array,map 等已原生支持。
拉姆达表达式的支持会使你的代码更紧凑。 - 而对于一些已处于维护的稳定的项目,首先包大小的扩增肯定是需要考虑到的因素,可以通过剪裁的方式接入,但是也是有一定的成本的。