Kotlin介绍
Kotlin名字由来
Kotlin 来源于一个岛屿的名字,全称是 Kotlin Island,是英语「科特林岛」之意。这个小岛属于俄罗斯。
那么 Kotlin 编程语言为什么要选这个看似名不见经传的小岛来作为自己的名字呢?
这就不得不说说 Kotlin 语言的开发者 JetBrains 公司了。
我们可以去 JetBrains 的官网 https://www.jetbrains.com
JetBrains 是来自捷克的公司,公司总部位于捷克首都布拉格,在俄罗斯的圣彼得堡和美国的波士顿都设有分公司。
Kotlin是什么
知道了名字的由来和背后的老大们,我们进一步来认识一下 Kotlin 本人。
Kotlin 当然是一门编程语言,但它并不是「新出炉的面包」,从 2010 年就开始「烘焙」了。
说一点 Kotlin 的历史:
■ 2010 年 :JetBrains 着手开发 Kotlin。
■ 2011 年 7 月 :JetBrains 公开宣布 Kotlin。
■ 2012 年 2 月 :JetBrains 在 Apache 2 许可证下开源了 Kotlin 的源码。目前 Kotlin 的官方源代码在 Github 上 https://github.com/JetBrains/kotlin 。
■ 2016 年 2 月 :JetBrains 发布了 Kotlin 1.0 版,算是比较稳定的正式版。许诺之后一直会保持向后兼容。
■ 2017 年目前最新版本 :1.1.2(2017 年 6 月)。相比 Kotlin 1.0 版本时,和 Kotlin 有关的代码数目从 210 万行飞升到 1000 多万行。
Kotlin 是基于 JVM 的静态类型编程语言,而 Java 也是基于 JVM 的编程语言,那么 Kotlin 比 Java 究竟有哪些优势呢?
Kotlin的优势
■ 多平台开发的可能 :基于 JVM 的开发,Android 开发,Web 开发,Native(原生)开发。
■ 开源
■ 和 Java 100% 兼容 :Kotlin 调用 Java 已有的代码或库没有问题。在一个项目中也可以同时用 Java 和 Kotlin 来编写代码。Android Studio 和 IntelliJ IDEA 都可以实现一键转换 Java 代码到 Kotlin。
■ 安全 : 大家聊得最多的肯定是可以轻松防止在 Java 中很常见NullPointerException(空指针异常)问题,做 Android 开发的一定深有体会,一般 app 奔溃,基本都是因为 NullPointerException,很多时候规避机制就是加一个 if 语句的判断,很累赘。
■ Lambda 表达式。
■ 变量类型推断。
■ Anko : Kotlin 的官方库可以使 Android 应用开发更快捷。
■ 优秀工具的支持 :JetBrains 公司开发了那么多优秀的工具,Kotlin 可以完全享用。
Kotlin语法特点
Kotlin本身的语法和Java有些不一样,相对Java而言,主要的变化有这么几条:
1.没有“;”
在Kotlin语法里,代码行不需要用“;”结尾,什么都不写就好
2.重要的“:”
在Java里,“:”主要在运算符里出现(for/switch/三元运算符等)。
在Kotlin里,“:”的地位大大提升了,它的用途非常广泛,包括:
定义变量类型
var name:String="my name" //变量name为String类型
定义参数的类型
fun getData(id:Int){ //参数id为Int类型
}
3.没有“new”
Kotlin实例化一个对象时不需要new关键字
var list=ArrayList()
4.变量、常量、类型推断
用var定义变量
var name:String="my name"
用val定义常量(相当于final)
val TAG:String="ClassName"
上面两个例子用:String来定义了数据类型,这个是可以省略的,Kotlin支持类型推断,
var name="my name"
val TAG="ClassName"
5.空指针安全
在Kotlin里,可以用“?”表示可以为空,也可以用“!!”表示不可以为空。
空指针安全并不是不需要处理空指针,你需要用“?”声明某个变量是允许空指针的,例如
var num:Int?=null
声明允许为空时,不能使用类型推断,必须声明其数据类型
Kotlin学习资源
1.官网
https://blog.jetbrains.com/kotlin/官方博客
https://github.com/JetBrains/kotlin Kotlin源码
2. 中文社区