今年的Google I/O大會(huì)上贝咙, Google將Kotlin列為Android官方開(kāi)發(fā)語(yǔ)言,Android Studio 3.0的預(yù)覽版默認(rèn)集成了Kotlin碌识。Kotlin這門(mén)語(yǔ)言從誕生到穩(wěn)定已歷經(jīng)5年時(shí)間,終于在去年底發(fā)布了1.0的穩(wěn)定版。Angroid官方也終于忍受不了Java 6(貌似還有版權(quán)問(wèn)題)肖揣,迫不及待將開(kāi)源的Kotlin作為官方指定用語(yǔ)。
Google的官方說(shuō)明:https://developer.android.com/kotlin/index.html
這勢(shì)必會(huì)對(duì)Android的應(yīng)用開(kāi)發(fā)造成影響贰盗,雖然不會(huì)讓很多習(xí)慣Java開(kāi)發(fā)的程序員立刻轉(zhuǎn)投Kotlin的懷抱许饿,不過(guò)作為Java的程序員你至少還是要知道Kotlin是什么的,是否“棄暗投明”或是“棄明投暗”那就是后話(huà)了舵盈。
面試題:你有使用過(guò)Kotlin來(lái)開(kāi)發(fā)Android應(yīng)用嗎陋率?說(shuō)說(shuō)Kotlin和Java有什么區(qū)別?
讓一個(gè)不知道Kotlin為何物的同學(xué)去回答這個(gè)問(wèn)題秽晚,有些折磨人瓦糟。雖然很多公眾號(hào)頭條在密集推送Kotlin的文章,里面說(shuō)了各種Kotlin對(duì)比Java 6的好處赴蝇。
我估計(jì)你也背不下來(lái)菩浙,所以有什么比讓你直接體會(huì)一下更有效呢?而且與其花時(shí)間糾結(jié)要不要學(xué)句伶,還不如直接上手試試來(lái)得生猛有效劲蜻。我錄了一段演示的視屏,給你展示從Android Studio 3.0 Preview版的安裝到用Kotlin編寫(xiě)第一個(gè)Android應(yīng)用的全過(guò)程考余。
我是Mac系統(tǒng)先嬉,Window系統(tǒng)的讀者請(qǐng)行參考官方的安裝說(shuō)明。Android Studio 3.0 Preview下載地址:https://developer.android.com/studio/preview/index.html
建議直接安裝3.0的預(yù)覽版楚堤,預(yù)覽版可以和穩(wěn)定版本并行運(yùn)行疫蔓。
區(qū)別
是不是發(fā)現(xiàn)視頻中的例子好清新含懊,寫(xiě)了許久Java,才發(fā)現(xiàn)世上還有很其他省事的代碼寫(xiě)法衅胀,一直在Java 6的海洋中岔乔,確是有點(diǎn)難跟上現(xiàn)代語(yǔ)言的步伐。
Kotlin和Java的區(qū)別有很多滚躯,這樣的問(wèn)題你可以隨便挑幾點(diǎn)你感興趣或者對(duì)你目前Java代碼改善比較大的來(lái)回答雏门。
這樣的回答會(huì)讓你的答案更生動(dòng)真實(shí),還記得嗎掸掏,我們之前說(shuō)過(guò)面試官很重要的一個(gè)工作就是辨別真?zhèn)巍?/p>
如:
- Kotlin更安全剿配;
如空引用由類(lèi)型系統(tǒng)控制,你不會(huì)再遇到NullPointerException阅束。
- 簡(jiǎn)潔呼胚,可靠,有趣
如你可以用Lambda 表達(dá)式息裸;可以減少了很多模版代碼蝇更;我們的演示視頻中就不需要findViewById。
- 函數(shù)式支持呼盆;
- 擴(kuò)展函數(shù)年扩;
Kotlin同C#類(lèi)似,能夠擴(kuò)展一個(gè)類(lèi)的新功能而無(wú)需繼承該類(lèi)或使用像裝飾者這樣的任何類(lèi)型的設(shè)計(jì)模式访圃。Kotlin支持?jǐn)U展函數(shù)和擴(kuò)展屬性厨幻。
- Kotlin中沒(méi)有靜態(tài)成員;
- ......
與Java交互
Kotlin可與Java進(jìn)行100%的互操作腿时,允許在Kotlin應(yīng)用程序中使用所有現(xiàn)有的 Android 庫(kù) 况脆,Kotlin的標(biāo)準(zhǔn)庫(kù)更多的是對(duì)Java庫(kù)的擴(kuò)展。
注意:目前我也是剛使用Kotlin批糟,還有很多其他區(qū)別和優(yōu)缺點(diǎn)格了,我會(huì)在稍后的文章中和大家分享。
學(xué)習(xí)資源
官方網(wǎng)站:https://kotlinlang.org/docs/reference/
中文翻譯:http://www.kotlincn.net/
小結(jié)
Kotlin的一個(gè)主要優(yōu)點(diǎn)是它的簡(jiǎn)潔徽鼎。你用很少的代碼就可以實(shí)現(xiàn)原來(lái)Java寫(xiě)的功能盛末,而你寫(xiě)的代碼越少,你犯錯(cuò)誤的概率就越小否淤。光這個(gè)原因我就比較推薦大家嘗試一下Kotlin來(lái)開(kāi)發(fā)應(yīng)用悄但。
正如巴菲特所說(shuō)“投資的秘訣不是如何贏,而是如何比別人少犯錯(cuò)誤石抡¢芟”
不知道用在程序員身上是否也適用呢?也許可換成這樣的說(shuō)法:“厲害的程序了不是代碼寫(xiě)的有多巧妙汁雷,而是比別人寫(xiě)的代碼更好讀更少出BUG净嘀。”