作为一款主打IDE公司的产物,kotlin从初始状态就表现得极具野心,不单可以编译成java字节码,还可以编译成javascript,甚至是机器码。不过在这里,主要说的是其作为jvm语言,在我看来,JetBrains还是很明白java程序员的痛点所在,kotlin表现得恰到好处。
此次主要对kotlin做一些简单介绍,属于我先抛个砖,然后引出诸位的玉。由于本人使用kotlin的时间并没有太长,所以难免会有谬误之处,欢迎诸君雅正。
现如今,kotlin已经成为Android的一级开发语言,虽然这和oracle收购了sun公司之后,将java收得越来越紧有很大的关系。最容易看得见的好处就是,与java相比,kotlin更安全,更简洁,也更简单。或者有人要说了,jvm语言现在已经有好几种,尤其在简单一项,几乎所有的jvm语言都表现得比java更简洁。保守派总说,这无非是语法糖而已,但大量的语法糖带来的开发效率提升,是显而易见的。kotlin与其他的jvm语言相比,让人最舒服的就是,其与maven非常亲和。在使用idea开发maven项目的时候,如果使用kotlin,甚至都不需要安装kotlin的编译器,只需要引入相关的maven包和build插件即可。
语法方面的加强,在此提几个个人觉得比较有意思的点。
在编译时,会对参数进行非常检测,大大降低了空指针异常的发生在语法层面,对代理提供支持特有的修饰符operator:操作符open:可继承inline:内联infix:中缀
对类与接口可以增强拓展支持协程,可以快速而简单的实现异步编程
上述几点,让我附上几段简单的代码来表示
由于kotlin的母公司为JetBrains,这家专注于IDE的公司,一推出这款语言,就已经为开发者想好,如何快速的将java代码转成kotlin代码。只需要按照如下四步,就可以快速的将java代码专成kotlin代码,有兴趣的同学,不妨试试看。
复制java代码
新建kt文件
粘贴代码
根据idea的提示,点击确定
除了位运算在转换的过程中,可能会出问题(应该绝大多数项目中,都不会用到位运算),其他的代码基本上可以实现完美转换。
在这里需要提醒的是,虽然kotlin一直被强调,可以和java完美互调,但实际上,inline函数是没有办法被java调用的。这是因为inline函数会在编译的时候将那部分代码复制到调用处,也就是说,编译完成之后,就不存在inline函数了··· ···
最后提两个比较有意思的点。
java如果在匿名内部类里面添加了方法,是没办法直接调用的,这是因为它只能被父类型引用,但是在kotlin里面,是直接可以引用的。
对于java编译器来说,非运行时异常不在方法签名中声明抛出,会编译不通过。但是对于jvm来说,运行时异常和非运行时异常并无区别。在kotlin中,可以把所有的异常,都当成运行时异常··· ···
领取专属 10元无门槛券
私享最新 技术干货