HelloKotlin
Foreword
首先,獻上官方網(wǎng)址:Kotlin,官方介紹它是用于現(xiàn)代多平臺應(yīng)用的靜態(tài)類型編程語言,而且可以100%用于Java及安卓,這不2017-05-17的谷歌I/O大會上已正式宣布Kotlin為安卓官方語言,這不,Android Studio 3.0預(yù)覽版已自帶Kotlin插件,如果想要在線體驗,那就點擊這個傳送門吧。
Introduce
Kotlin不同于Swift,它的野心更大,它的平臺更廣,如下圖所示。
怎么樣,心動了嗎,是不是覺得可以做全棧了?哈哈。
那么,為什么要選擇Kotlin呢,官方給出了它的四大優(yōu)點。
1. 簡潔(Concise)
大幅度縮減樣板代碼。
E.g.
比如創(chuàng)建一個帶有getters, setters, equals()``,hashCode(), `toString() and copy()函數(shù)的POJP只需要一行代碼即可。
data class Customer(val name: String, val email: String, val company: String)
亦或者迭代一個鏈表用lambda表達式只需如下寫法。
val positiveNumbers = list.filter { it > 0 }
想要構(gòu)造一個單例?只需創(chuàng)建一個object即可。
object ThisIsASingleton {
val companyName: String = "JetBrains"
}
2. 安全(Safe)
避免了蛋疼的空指針異常。
E.g.
曾經(jīng)的十億美元錯誤就是由空指針異常引起的,用Kotlin的話我們就可以避免它。
var output: String
output = null // Compilation error
Kotlin可以避免你犯空指針引起的錯誤。
val name: String? = null // Nullable type
println(name.length()) // Compilation error
如果你檢查了這個類型是對的,編譯器將會自動幫你轉(zhuǎn)型。
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)
它的目標(biāo)既可以是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已經(jīng)介紹完畢,之后就跟著我一起來學(xué)習(xí)它吧,我會把我所學(xué)到的都發(fā)布在HelloKotlin庫中,喜歡的話點個star給柯基動力吧。