Kotlin優(yōu)勢總結(jié)

簡潔

大大減少樣板代碼的數(shù)量

/* 使用一行代碼創(chuàng)建一個包含

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 }

// 想要單例?創(chuàng)建一個 object 就可以了:

object ThisIsASingleton { val companyName: String = "JetBrains" }

安全

避免空指針異常等整個類的錯誤

/*

徹底告別那些煩人的 NullPointerException——著名的十億美金的錯誤

*/

var output: String

output = null // 編譯錯誤

// Kotlin 可以保護你避免對可空類型進行誤操作

val name: String? = null // 可空類型

println(name.length()) // 編譯錯誤

// 并且如果類型檢測正確,編譯器會為你做自動類型轉(zhuǎn)換

fun calculateTotal(obj: Any) {

????if (obj is Invoice)

????????obj.calculateTotal()

}


互操作性

充分利用 JVM、Android 和瀏覽器的現(xiàn)有庫

/*

使用 JVM 上的任何現(xiàn)有庫,因為有 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 += "<br/>Hello, Kotlin!"

}

工具友好

可用任何 Java IDE 或者使用命令行構(gòu)建

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容