最近google官方宣布kotlin成为安卓官方开发语言,被称为安卓界的swift,很久没有码代码的我打开了AS尝尝鲜。
Kotlin是什么
Kotlin是一门静态类型、基于JVM的语言,是由JetBrains开发的,没错就是开发Android Studio的公司。
Kotlin的优势
- 简洁性
我们都知道Java一直都被吐槽说繁琐冗杂,而Kotlin应该就是上天派来拯救安卓开发者的吧。
举个简单的例子,你们应该都会讨厌一个东西,那就是getter和setter,即使有插件可以自动填充,你也会觉得看到这些代码觉得很烦躁吧。
Java中仅仅是3个变量的类就要写这么一大串
public class Data {
private int id;
private String account;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
而Kotlin只需要短短几行
class Data {
var id: Int = 0
var account: String? = null
var password: String? = null
}
也可以通过构造函数赋值
class Data(var id: Int, var account: String?, var password: String?)
是不是有种相见恨晚的感觉
- 空安全
空指针几乎是大部分bug的原因所在,而Kotlin会帮我们极大的降低空指针的可能。一旦要求变量不能为空,那么空指针异常的可能性就没有了。
举个简单的例子:
val anInt: Int = null // 错误
val anotherInt: Int? = null // 正确
- 拓展类
Java中的API都是比较简单的,很多时候我们要组合处理,于是产生了Utils类。我们只需要重写一个拓展方法,感觉就像Java给我们提供了这么一个方法,优点就是简化了调用过程。 - 函数式支持
Kotlin支持Lambda表达式,会让我们的程序看起来更加简洁明了。 - 编译速度稍快
Kotlin VS Java:编译速度大比拼,到底谁更快?
这篇文章测试了Java和Kotlin的编译速度,当然在这方面Kotlin并不会有太大优势,但至少,它已经不会输给Java了。 - 等等(其他的我也不了解了)
Kotlin试用与学习
划重点划重点
其实这篇中真正是我探索到的也就这么点东西了。
记录下我根据官方文档来试用Kotlin的经历。
就在我写下这篇文章不久前,AS似乎发布了3.0,已经支持了Kotlin的直接使用。如果你还在用2.x并且想试试的话,就跟着做就好了。
- 首先安装Kotlin的插件
File | Settings | Plugins | Install JetBrains plugin,然后搜索Kotlin点击install就好了 - 转换一下Java代码
使用Find Action方法(windows中是ctrl+shift+A),搜索convert java file to kotlin,将一个java文件转换为kotlin代码。
- 然后开始编辑代码,AS会提示你configure
- 然后选择最新的版本配置
- 之后sync一下gradle和project就可以了
- 接下来你就可以愉快的开始写kotlin代码了
刚开始学习,很多可能都不懂,有一个简单的学习方法是写好java文件然后转换为kotlin进行学习(ctrl+shift+alt+k),但是有时候你会发现转换之后会报错,因为kotlin和java的语法还是有些许出入,虽然从java转kotlin不会很难,但也不是那么容易上手的。
Kotlin语法怎么学
我也还不会啊。
推荐一份中文文档给大家
https://github.com/huanglizhuo/kotlin-in-chinese
结语
其实这篇毫无营养的文章,只是为了百步梯凑线上分享哈哈。
以上借鉴了很多文章,表示感谢:
http://blog.csdn.net/sergeycao/article/details/54984108
http://www.techug.com/post/kotlin-vs-java.html
http://www.codeceo.com/article/android-developer-know-kotlin.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2016/0226/4000.html
http://www.infoq.com/cn/news/2015/06/Android-JVM-JetBrains-Kotlin
当然,最好的学习方法还是上kotlin官网看英文文档啦