也赶个时髦,说说Kotlin那些事

嘎子 Android, Kotlin 2017-05-25 3,521 次浏览 , , 1条评论

自己之前很长时间都在用C#来进行桌面的编程,所以非常喜欢C#那种简洁、简单的语言风格。虽然有很多人在说C#的效率有问题(当然,Microsoft也一直在说C#的效率还是很高的),也有人说其跨平台的特性很差,但自己还是非常喜欢用C#,只有一个原因,它非常简单,可以让我用极少的代码完成“大部分”的工作。

最近自己也在做一些Android的开发,用java写一些东西,虽然说java也是一门非常完善的高级语言,但对java有一特性还是非常不爽的。

我总结了几点,C#和java的让我最接受不了的东东:

1、java没有函数默认值。在进行函数定义时,两个函数只是多一个默认值,那么就要定义两个,这个让人非常不爽。

2、get/set函数。这使代码变得非常长。

3、java没有LINQ功能。

4、java里事件的处理过于麻烦了,没有C#简洁。

我说这些和Kotlin有什么关系呢?我想说的是Kotlin很好的解决了这些问题。当然,除了这些问题还有其他很多我并不太清楚的特性,那么我们还是先从头开始介绍一下Kotlin吧。

Kotlin已经是Android开发的默认语言了!!!

其实这个并不难理解,有以下几点迹象,所以很早就有人有这个猜测了:

1、Kotlin和java可以无缝的接合。

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。

看这一段是不是有一种C#可以编译成IL(中间语言)的感觉,所以我一开始就把Kotlin和C#进行类比。

所以从严格意义上来讲,Kotlin并不是一种全新的语言,而像是一种在之前的语言上再封装,提供了一部分新特性的语言工具。–自己的看法,不喜勿喷。

2、这个信息其实已经在上面提过了,Kotlin是由JetBrains开发的。如果说JetBrains大家可以比较陌生,如果说Java IDE IntelliJ 的提供商,那么大家应该就明白了。

Google和Oracle的关系并不太好大家应该早就听说了吧,虽然Android最早和Java的关系非常密切,但Android的去java化非常明显,先是去了JVM,用上了DVM。然后又将Android Studio迁移到了IntelliJ平台上,到今天。。。又将Kotlin作为Android的默认开发语言,慢慢的Android与Java渐行渐远了。关于这里面的好坏之类的东西我就不多说了。

如果你看到这里,至少应该对Kotlin有点了解了吧。下面就说说它一些能够提高效率语言特性:

1、就是上面所说的setter/getter及参数的默认值。体验一下,实际上下面第一段代码(Java,近60行代码)和第二段代码(Kotlin,1行代码)定义了相同的类。

这是为什么呢?其实就是Kotlin已经将一些常用的东东自己定义好了。你会看到其实在Java类中这些代码什么都没有做,就只是赋值,然后最常用的重载。用了Kotlin之后你可以非常少的做这些重复工作。

2、Kotlin对Lambda表达式的支持。

第一次接触Lambda表达式还是C#中学习LINQ时的,发现真是一种非常简洁,非常高效的做法。很高兴的说,Kotlin让Android支持了Lambda表达式,先来体验一下:

后面的两行代码如果用java怎么实现应该也不难,但至少要10多行代码吧:

代码大约是这样的。

关于Lambda表达式的更多内容,大家可以在网上搜索,Lambda表达式对事件的表达与实现、数据的查询等都有很大的优势。

最后说几句

我也没有完全的了解Kotlin还有Java,所以他们更多的比较以后有机会我还会写更多,援引知乎上的说法,用Kotlin之后代码量减少了约50%,开发效率提高了约30%,实在是一个让人惊叹的数据。是Kotlin太先进还是Java已经不思进取了呢??

原创文章,转载请注明: 转载自TsonTec:测量解决方案提供者

本文链接地址: 也赶个时髦,说说Kotlin那些事

相关主题

说点什么

1 评论 在 "也赶个时髦,说说Kotlin那些事"

提醒
avatar
排序:   最新 | 最旧 | 得票最多
rgqancy
游客

wpDiscuz
回顶部