Kotlin 是一门基于 JVM 且与 JAVA 可 100% 互通的编程语言,用 JetBrains 的话来说 Kotlin 是更『现代化、更强大』的编程语言。
Kotlin 由 JetBrains 在 2010 年开发,2011 年开源至 GitHub ,2016 年发布 1.0 版。 源码地址:https://github.com/JetBrains/kotlin 。
Google Android 团队与 JetBrains 的关系不一般。Android Studio 由 Google 研发、维护,但它基于 JetBrains 开发的 IntelliJ IDEA 社区版。
Google 和 JetBrains 将为 Kotlin 成立一个非盈利基金会。Kotlin 语言的开发,还是 JB 为主导。
Andrey Breslav 是 Kotlin 语言的首席设计师。
JetBrains 对 Kotlin 的愿景是:用同一种语言,桥接多平台的不同应用的端对端开发。包括全栈 Web 应用、Android 和 iOS 客户端、嵌入式/物联网等等。(Kotlin 与 Java 100% 互通,并具备诸多 Java 尚不支持的新特性。)
Android Studio 3.0 预览版已支持 Kotlin。下载 AS 3.0 预览版后,打开现有的 Java 文件,在「Code」菜单中选择「Convert Java File to Kotlin File」。AS 会添加 Kotlin 依赖,然后把 Java 代码转成同等功能的 Kotlin 代码。
Kotlin 易于上手,可以逐步引入到现有项目中。这意味着安卓开发者目前现有的技能和技术积累、投资并没有浪费。
使用一行代码创建一个包含 getters、 setters、 equals()、 hashCode()、 toString() 以及 copy() 的 POJO:
data class Customer(val name: String, val email: String, val company: String)
或者使用 lambda 表达式来过滤列表:
val positiveNumbers = list.filter { it > 0 }
想要单例?创建一个 object 就可以了:
object ThisIsASingleton {
val companyName: String = "JetBrains"
}
彻底告别那些烦人的 NullPointerException——著名的十亿美金的错误。
var output: String
output = null // 编译错误
Kotlin 可以保护你避免对可空类型的误操作
val name: String? = null // 可控类型
println(name.length()) // 编译错误
并且如果你检查类型是正确的,编译器会为你做自动类型转换
fun calculateTotal(obj: Any) {
if (obj is Invoice)
obj.calculateTotal()
}
使用 JVM 上的任何现有库,因为有 100% 的兼容性,包括 SAM 支持。
import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers
Flowable
.fromCallable {
Thread.sleep(1000) // 模仿高开销的计算
"Done"
}
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.single())
.subscribe(::println, Throwable::printStackTrace)
无论是 JVM 还是 JavaScript 目标平台,都可用 Kotlin 写代码然后部署到你想要的地方
import kotlin.browser.window
fun onLoad() {
window.document.body!!.innerHTML += "
Hello, Kotlin!"
}
一门语言需要工具化,而在 JetBrains,这正是他们做得最好的地方!
目前移动端依然把持流量入口,热度不减,市场依旧很大,Kotlin 也已成为 Google 新儿子,是 Android 官方支持的首选开发语言,BAT 等国内外一线互联网公司都已在线上项目中积极使用,它确实极大提升了开发效率、系统安全性同时有极高互通性,是一门潜力较高的编程语言——必须掌握,以备不时之需!