Kotlin 是一门实践导向的语言,什么意思呢,就是他就是想让程序员用的更爽。所以他用了很多语法糖,来去除一个模板代码,模板代码应该就算是一门语言的习语吧。不如在 Java 里要写个单例,那都需要一下几步:
- 将构造函数私有化,不让使用者自己随便创建对象
- 在该类内定义一个私有的静态属性,类型为该类
- 提供一个公有的静态 getInstance() 方法, 在第一次使用的时候初始化之前那个私有静态属性,并返回,之后就可以不在初始化了,直接使用那个对象就行。
以上的过程,在代码中是经常出现的,还有几种初始化的方法,我们总选一种比较好的。而在 Kotlin 内,只需要使用 object 关键字修饰 class。
还是来个栗子吧
Java 代码:
1 | public class Singleton { |
Kotlin 代码:
1 | object Singleton { |
这个对比,可为震撼?
有些拿语法糖说事,最早我知道语法糖好像是一篇写 Python 的文章,说 Python 有很多语法糖,我很难认同,感觉这就是酸葡萄心理,这个写文章的不是 C 语言开发者,就是 Java 语言开发者。
大部分对语法糖的指责是它没有给语言添加什么功能,只是对原有语言的封装,可是这有什么呢,原来的语言已经完备了,何必添加功能。语言是人类与机器之间的交流的工具,我们要发着这个工具,添加一些常用语,这是多么好呀,比如我们的缩略语 WTF,lol等等。
当然,一些编程初学者并不建议学习 Kotlin, 可以先学习 Java 在学习 Kotlin。
下一篇,我会翻译一下 Kotlin 官网对 Kotlin 习语的整理。