随着计算机语言的发展,以成本为核心的驱动力,推动着经历了汇编、C、C++、Java、Kotlin的发展,其目的在于让开发人员更好的聚焦于业务,而不用太关注语言本身的处理。
近几年,又开始流行更高级的语言,它们被称之为现代编程语言,比如Rust、Go、Kotlin和TypeScript等。现代的核心原因,我认为可以总结为以下几点:
入门更容易
类型推断
空指针安全
内置的并发支持
减少模板代码(简洁)
操纵集合更容易
更智能的垃圾回收
以上不一定非常全,但是一定程度上概括了现代语言的特点,下面我们就基于Kotlin和Java的对比,来看下Kotlin的优势。
new个对象
new一个对象,是我们在编程中最常用的操作之一,让我们先看下如何在Java中new一个对象。
List<String> list =new ArrayList<String>();
list.add("https://www.flysnow.org");
在Java中,我们需要定义一个变量,然后通过new
关键字声明一个ArrayList<String>
的示例,这样我们就可以使用他了。
但是在Kotlin,new一个对象会更简洁。
val list:ArrayList<String> = ArrayList<String>()
直接省略了new
关键字即可。
类型推断
对于以上的Kotlin代码,我们完全可以省略掉变量:
后面的类型声明,因为kotlin可以自己推断出来。
val list = ArrayList<String>()
是不是觉得更简洁了?我们开发的效率也更高了。
空指针安全
在Java中,变量,方法的参数等都是可以为null
的,但是在Kotlin中默认是不允许的,通过这种强制的限制,更好的避免空指针异常。
var list = ArrayList<String>()
list = null
以上代码,在编译期你会得到一个错误提示:
Null can not be a value of a non-null type ArrayList<String>
如果我们的确需要null赋值怎么做呢?在Kotlin中需要开发者自己显示声明才可以