Kotlin是使用Java開發(fā)者的思維被創(chuàng)建的,Intellij作為它主要的開發(fā)IDE。對(duì)于Android開發(fā)者,有兩個(gè)有趣的特點(diǎn):
. 對(duì)Java開發(fā)者來說,Kotlin是非常直覺化的,并且非常容易學(xué)習(xí)。語言的大部分內(nèi)容都是與我們知道的非常相似,不同的地方,它的基礎(chǔ)概念也能迅速地掌握它。
. 它與我們?nèi)粘I钍褂玫腎DE無需配置就能完全整合。Android Studio能夠非常完美地理解、編譯運(yùn)行Kotlin代碼。而且對(duì)這門語言的支持來正是自于開發(fā)了這個(gè)IDE的公司本身,所以我們Android開發(fā)者是一等公民。
但是這僅僅是開發(fā)語言和開發(fā)工具之間的整合。相比Java 7的優(yōu)勢(shì)到底是什么呢?
. 它更加易表現(xiàn):這是它最重要的優(yōu)點(diǎn)之一。你可以編寫少得多的代碼。
. 它更加安全:Kotlin是空安全的,也就是說在我們編譯時(shí)期就處理了各種null的情況,避免了執(zhí)行時(shí)異常。如果一個(gè)對(duì)象可以是null,則我們需要明確地指定它,然后在使用它之前檢查它是否是null。你可以節(jié)約很多調(diào)試空指針異常的時(shí)間,解決掉null引發(fā)的bug。
它是函數(shù)式的:Kotlin是基于面向?qū)ο蟮恼Z言。但是就如其他很多現(xiàn)代的語言那樣,它使用了很多函數(shù)式編程的概念,比如,使用lambda表達(dá)式來更方便地解決問題。其中一個(gè)很棒的特性就是Collections的處理方式。
. 它可以擴(kuò)展函數(shù):這意味著我們可以擴(kuò)展類的更多的特性,甚至我們沒有權(quán)限去訪問這個(gè)類中的代碼。
. 它是高度互操作性的:你可以繼續(xù)使用所有的你用Java寫的代碼和庫,因?yàn)閮蓚€(gè)語言之間的互操作性是完美的。甚至可以在一個(gè)項(xiàng)目中使用Kotlin和Java兩種語言混合編程。