Hello Kotlin

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 += "
Hello, Kotlin!" }

4. 工具友好(Tool-friendly)

可以选择任何Java的IDE或者用命令行编译。

E.g.

Kotlin语言可以在JetBrains提供的工具大放异彩。

Learn Material

From Java To Kotlin(极力推荐)

Kotlin Github

Kotlin官方Doc

Kotlin官方Doc中文

Kotlin官方Doc中文PDF

Kotlin for Android Developers(有钱你就买吧)

Kotlin for Android Developers中文

Kotlin for Android Developers中文PDF

Kotlin sample

A Complete Guide To Learn Kotlin For Android Development

Get Started with Kotlin on Android

Conclusion

Kotlin已经介绍完毕,之后就跟着我一起来学习它吧,我会把我所学到的都发布在HelloKotlin库中,喜欢的话点个star给柯基动力吧。

你可能感兴趣的:(Hello Kotlin)