Hello Kotlin

作者: Blankj | 来源:发表于2017-05-18 17:41 被阅读1249次

    HelloKotlin

    Foreword

    首先,献上官方网址:Kotlin,官方介绍它是用于现代多平台应用的静态类型编程语言,而且可以100%用于Java及安卓,这不2017-05-17的谷歌I/O大会上已正式宣布Kotlin为安卓官方语言,这不,Android Studio 3.0预览版已自带Kotlin插件,如果想要在线体验,那就点击这个传送门吧。

    Introduce

    Kotlin不同于Swift,它的野心更大,它的平台更广,如下图所示。

    Kotlin Build Applications ForKotlin Build Applications For

    怎么样,心动了吗,是不是觉得可以做全栈了?哈哈。

    那么,为什么要选择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提供的工具大放异彩。

    tooling0tooling0 tooling1tooling1

    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给柯基动力吧。

    想进微信讨论群的话扫一下我微信,加我好友,注明“kotlin”即可,我会把你拉到群里。

    Blankj 2D barcodeBlankj 2D barcode

    相关文章

      网友评论

        本文标题:Hello Kotlin

        本文链接:https://www.haomeiwen.com/subject/ntasxxtx.html