一年一度的 Google I/O 大會(huì)在山景城露天劇場(chǎng)如期開幕。對(duì)開發(fā)者來(lái)說(shuō),最值得一提的大事就是:谷歌在I/O 2017開發(fā)者大區(qū)會(huì)上宣布了安卓開發(fā)全面支持Kotlin編程語(yǔ)言。
Kotlin語(yǔ)言
對(duì)Java和安卓開發(fā)者來(lái)說(shuō),最值得一提的大事就是:谷歌在I/O 2017開發(fā)者大區(qū)會(huì)上宣布了安卓開發(fā)全面支持Kotlin編程語(yǔ)言。其實(shí)在之前這個(gè)語(yǔ)言就已經(jīng)支持了安卓平臺(tái)開發(fā),但是直到今天谷歌開發(fā)者大會(huì)上才宣布對(duì)該語(yǔ)言的全面支持和維護(hù)。
Kotlin的簡(jiǎn)介
Kotlin背后的公司為JetBrains,著名的IDE IntelliJ IDEA便是這家公司開發(fā)的。Kotlin這種語(yǔ)言100%支持Java,而Java也是安卓應(yīng)用開發(fā)最主要的語(yǔ)言之一。
Kotlin和Java一樣都是基于JVM的語(yǔ)言,Kotlin是一門非?,F(xiàn)代化的編程語(yǔ)言,谷歌稱它是更高效且智能的語(yǔ)言。除了其簡(jiǎn)潔(減少 40% 的代碼行數(shù))、安全、簡(jiǎn)單的特性外,Kotlin 還可以方便的與現(xiàn)有的 Java 代碼相互調(diào)用,也可以與 JavaScript 互操作,非常易于上手。
目前已有大量的安卓開發(fā)者在使用 Kotlin 做為開發(fā)語(yǔ)言。
相信很多人都會(huì)問(wèn):為什么Kotlin可以加入Android家族?它和java相比,在語(yǔ)法,可用性,UI性能和異步性方面雙方孰好孰壞?接下來(lái)咱家就為您探討探討
Kotlin VS Java
語(yǔ)法簡(jiǎn)單不啰嗦
Kotlin的一個(gè)主要優(yōu)點(diǎn)是它的簡(jiǎn)潔。 你用更少的代碼獲得更多的功能。
① Kotlin 支持類型推斷,沒(méi)有 Java 那樣的啰嗦。
② 用 var 表示變量,val 表示常量更加的簡(jiǎn)潔
③ 方法也很簡(jiǎn)單,連 function 都縮寫成了 fun
④ 類的繼承和實(shí)現(xiàn)很簡(jiǎn)單,使用:即可
⑤ Kotlin 每個(gè)句子都不需要加分號(hào) (;)
避免空指針異常
在許多編程語(yǔ)言中最大的痛苦 - 空指針異常。 但是使用Kotlin,這個(gè)問(wèn)題得到了很好的解決
① 在類型上的處理,即在類型后面加上?,即表示這個(gè)變量或參數(shù)以及返回值可以為 null,否則不允許為變量參數(shù)賦值為 null 或者返回 null
② 對(duì)于一個(gè)可能是 null 的變量或者參數(shù),在調(diào)用對(duì)象方法或者屬性之前,需要加上?,否則編譯無(wú)法通過(guò)。
支持方法拓展
Kotlin有一個(gè)聰明的解決方案 - 擴(kuò)展功能 ,幫助你擺脫所有的util類一勞永逸。擴(kuò)展函數(shù)幾乎是一個(gè)通常的Kotlin函數(shù)。 但是當(dāng)你聲明它,你需要指定的實(shí)例將具有擴(kuò)展功能的類。
注意:Kotlin 的方法擴(kuò)展并不是真正修改了對(duì)應(yīng)的類文件,而是在編譯器和 IDE 方面做得處理。使我們看起來(lái)像是擴(kuò)展了方法。
高階函數(shù), 函數(shù)式編程支持
所謂的高階函數(shù)就是:可以接受函數(shù)作為參數(shù),也可以返回函數(shù)作為結(jié)果。
Kotlin 支持了 Streams API 和方法引用,這樣函數(shù)式編程更加方便。比如下面的代碼就是我們結(jié)合 Jsoup,來(lái)抓取某個(gè) proxy 網(wǎng)站的數(shù)據(jù),代碼更加簡(jiǎn)單,實(shí)現(xiàn)起來(lái)也快速。
關(guān)于性能
Kotlin 的執(zhí)行效率和 Java 代碼的執(zhí)行效率理論上一致的。有時(shí)候 Kotlin 可能會(huì)顯得高一些。比如 Kotlin 提供了方法的 inline 設(shè)置,可以設(shè)置某些高頻方法進(jìn)行 inline 操作,減少了運(yùn)行時(shí)的進(jìn)棧出棧和保存狀態(tài)的開銷。
與Java互操作
Kotlin 在設(shè)計(jì)時(shí)就考慮了 Java 互操作性??梢詮?Kotlin 中自然地調(diào)用現(xiàn)存的 Java 代碼,并且在 Java 代碼中也可以 很順利地調(diào)用 Kotlin 代碼。
總結(jié)
Kotlin的特性有很多,總的來(lái)說(shuō), Kotlin這門語(yǔ)言簡(jiǎn)化了Java , 完全是從一個(gè)是實(shí)用派的角度,而不是學(xué)院派的角度。
相比于JRuby , Jython這些一移植到JVM上的語(yǔ)言, Kotlin 和Java 和互操作感覺(jué)更加自然。
每個(gè)語(yǔ)言的流行都需要一個(gè)引爆點(diǎn),就像Ruby on Rails 引爆了Ruby 一樣, Android 也許就是之前不那么流行的Kotlin的引爆點(diǎn)。
最后附上Kotlin學(xué)習(xí)資源:
1.kotlin官方中文翻譯文檔網(wǎng)址:
https://www.kotlincn.net/docs/reference/
2.Kotlin官網(wǎng)
http://kotlinlang.org/
3.kotlin中文官網(wǎng)
https://www.kotlincn.net/
4.kotlin的gitbook網(wǎng)址
https://www.gitbook.com/book/hltj/kotlin-reference-chinese/details
參考文章:
http://droidyue.com/blog/2017/05/18/why-do-i-turn-to-kotlin/
https://www.w2bc.com/article/239949
http://tech.it168.com/a2017/0519/3124/000003124740.shtml
●本文編號(hào)397,以后想閱讀這篇文章直接輸入397即可。
●輸入m獲取文章目錄
安卓開發(fā)
更多推薦《15個(gè)技術(shù)類公眾微信》
涵蓋:程序人生、算法與數(shù)據(jù)結(jié)構(gòu)、黑客技術(shù)與網(wǎng)絡(luò)安全、大數(shù)據(jù)技術(shù)、前端開發(fā)、Java、Python、Web開發(fā)、安卓開發(fā)、iOS開發(fā)、C/C++、.NET、Linux、數(shù)據(jù)庫(kù)、運(yùn)維等。
聯(lián)系客服