HelloKotlin
Foreword
首先,献上官方网址:Kotlin,官方介绍它是用于现代多平台应用的静态类型编程语言,而且可以100%用于Java及安卓,这不2017-05-17的谷歌I/O大会上已正式宣布Kotlin
为安卓官方语言,这不,Android Studio 3.0预览版已自带Kotlin
插件,如果想要在线体验,那就点击这个传送门吧。
Introduce
Kotlin不同于Swift,它的野心更大,它的平台更广,如下图所示。
怎么样,心动了吗,是不是觉得可以做全栈了?哈哈。
那么,为什么要选择Kotlin呢,官方给出了它的四大优点。
1. 简洁(Concise)
大幅度缩减样板代码。
E.g.
比如创建一个带有getters
, setters
, equals()``,
hashCode(), `toString()
and copy()
函数的POJP
只需要一行代码即可。
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"
}
2. 安全(Safe)
避免了蛋疼的空指针异常。
E.g.
曾经的十亿美元错误就是由空指针异常引起的,用Kotlin的话我们就可以避免它。
var output: String
output = null // Compilation error
Kotlin可以避免你犯空指针引起的错误。
val name: String? = null // Nullable type
println(name.length()) // Compilation error
如果你检查了这个类型是对的,编译器将会自动帮你转型。
fun calculateTotal(obj: Any) {
if (obj is Invoice)
obj.calculateTotal()
}
3. 互用(Interoperable)
库可以在JVM、安卓及浏览器端可以互用。
E.g.
可以使用任何可以运行在JVM上的库,因为它具有100%的兼容性,包括支持SAM。
import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers
Flowable
.fromCallable {
Thread.sleep(1000) // imitate expensive computation
"Done"
}
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.single())
.subscribe(::println, Throwable::printStackTrace)
它的目标既可以是JVM也可以是JavaScript,你只需要用Kotlin写完代码,然后决定部署在哪即可。
import kotlin.browser.window
fun onLoad() {
window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
}
4. 工具友好(Tool-friendly)
可以选择任何Java的IDE或者用命令行编译。
E.g.
Kotlin语言可以在JetBrains提供的工具大放异彩。
Learn Material
Kotlin for Android Developers(有钱你就买吧)
Kotlin for Android Developers中文
Kotlin for Android Developers中文PDF
A Complete Guide To Learn Kotlin For Android Development
Get Started with Kotlin on Android
Conclusion
Kotlin已经介绍完毕,之后就跟着我一起来学习它吧,我会把我所学到的都发布在HelloKotlin库中,喜欢的话点个star给柯基动力吧。