失去的才是永恒的。 ——《泰坦尼克号》
什么是kotlin?
kotlin的由来是Kotlina,那 Kotlina又是什么? Kotlina是一个地名,该语言的发明者在Kotlina旅游的时候,想到了如何改进现在的java语言呢,是的这玩意儿和java有关系,所以他发明的语言就叫做kotlin了。嗯,和java的命名一样随意。
总的来说,Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为Android 世界的Swift,由 JetBrains 设计开发并开源。Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。
kotlin和java有什么区别?
- 首先我们得认得kotlin的文件,他就是以.kt为结尾的文件,例如hello.kt
- 和java相比较,句子的结尾再也不用写分号“;”了
- kotlin源文件不需要相匹配的目录和包,源文件可以放在任何文件目录
- 函数定义使用关键字 fun,参数格式为:参数 : 类型,例如:
fun sum(a: Int, b: Int): Int { // Int 参数,返回值 Int
return a + b
}
、、、、、、等等,其他的语法我在此不再赘述。如有需要可在下方留言
那么kotlin到底改进了什么?有什么优点呢?
- 易表现
在Java中,如果我们要典型的数据类,我们需要去编写(至
少生成)这些代码:
public class Artist {
private long id;
private String name;
private String url;
private String mbid;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMbid() {
return mbid;
}
public void setMbid(String mbid) {
this.mbid = mbid;
}
@Override public String toString() {
return "Artist{" +
"id=" + id +
", name='" + name + '\'' +
", url='" + url + '\'' +
", mbid='" + mbid + '\'' +
'}';
}
}
如果我们使用kotlin,那么我们只需要下面代码:
data class Artist(
var id: Long,
var name: String,
var url: String,
var mbid: String)
}
这个数据类,它会自动生成所有属性和它们的访问器,以及一些有用的方法
- 空安全(空指针异常)
在java开发中,我们如果想要程序可以正常运行,那么它必须是空安全的,也就是说,当程序遇到空指针异常,并且没有做空判断的时候,那么程序就会崩溃,这是我们最头疼的事。
但是kotlin是空安全的,因为我们需要通过一个 安全调用操作符 ( ? 或 !!)来明确地指定一个对象是否能为空。如果该对象可能为空,但是却没有加上安全调用操作符,那该程序就编译不过。例如:
// 这里不能通过编译. Artist 不能是null
var notNullArtist: Artist = null
// Artist 可以是 null
var artist: Artist? = null
、、、、、、等等
这篇kotlin开发思想入门到此就结束了,可能有人就会问,“上面什么也没写嘛,只有一些简单的例子”,当然了,我的目的只是向大家介绍kotlin这个语言和java的区别和主要优点,让大家能产生对kotlin的兴趣,一篇博文也不可能能像一本书一样介绍的那么详细。
毕竟2017年谷歌才开始推广kotlin,国内的普及率还不是很高,大家看到这篇文章能够知道kotlin也是好的,不过国内某些大公司已经开始用kotlin来开发安卓应用,之前拆包注意到百度网盘安卓版就是用kotlin写的。
说实话国内现在的kotlin教程还没有,都是一些零散的教程,但是有兴趣的话,给大家推荐一本书《Kotlin for android Developers》。