一年一度的 Google I/O 大會(huì)在山景城露天劇場(chǎng)如期開(kāi)幕。對(duì)開(kāi)發(fā)者來(lái)說(shuō),最值得一提的大事就是:谷歌在I/O 2017開(kāi)發(fā)者大區(qū)會(huì)上宣布了安卓開(kāi)發(fā)全面支持Kotlin編程語(yǔ)言。 Kotlin語(yǔ)言 對(duì)Java和安卓開(kāi)發(fā)者來(lái)說(shuō),最值得一提的大事就是:谷歌在I/O 2017開(kāi)發(fā)者大區(qū)會(huì)上宣布了安卓開(kāi)發(fā)全面支持Kotlin編程語(yǔ)言。其實(shí)在之前這個(gè)語(yǔ)言就已經(jīng)支持了安卓平臺(tái)開(kāi)發(fā),但是直到今天谷歌開(kāi)發(fā)者大會(huì)上才宣布對(duì)該語(yǔ)言的全面支持和維護(hù)。 Kotlin的簡(jiǎn)介 Kotlin背后的公司為JetBrains,著名的IDE IntelliJ IDEA便是這家公司開(kāi)發(fā)的。Kotlin這種語(yǔ)言100%支持Java,而Java也是安卓應(yīng)用開(kāi)發(fā)最主要的語(yǔ)言之一。 Kotlin和Java一樣都是基于JVM的語(yǔ)言,Kotlin是一門(mén)非常現(xiàn)代化的編程語(yǔ)言,谷歌稱它是更高效且智能的語(yǔ)言。除了其簡(jiǎn)潔(減少 40% 的代碼行數(shù))、安全、簡(jiǎn)單的特性外,Kotlin 還可以方便的與現(xiàn)有的 Java 代碼相互調(diào)用,也可以與 JavaScript 互操作,非常易于上手。 目前已有大量的安卓開(kāi)發(fā)者在使用 Kotlin 做為開(kāi)發(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 都縮寫(xiě)成了 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)的開(kāi)銷。 與Java互操作 Kotlin 在設(shè)計(jì)時(shí)就考慮了 Java 互操作性。可以從 Kotlin 中自然地調(diào)用現(xiàn)存的 Java 代碼,并且在 Java 代碼中也可以 很順利地調(diào)用 Kotlin 代碼。 總結(jié) Kotlin的特性有很多,總的來(lái)說(shuō), Kotlin這門(mén)語(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./docs/reference/ 2.Kotlin官網(wǎng) http:/// 3.kotlin中文官網(wǎng) https://www./ 4.kotlin的gitbook網(wǎng)址 https://www./book/hltj/kotlin-reference-chinese/details
●本文編號(hào)397,以后想閱讀這篇文章直接輸入397即可。 ●輸入m獲取文章目錄 安卓開(kāi)發(fā) 更多推薦《15個(gè)技術(shù)類公眾微信》 涵蓋:程序人生、算法與數(shù)據(jù)結(jié)構(gòu)、黑客技術(shù)與網(wǎng)絡(luò)安全、大數(shù)據(jù)技術(shù)、前端開(kāi)發(fā)、Java、Python、Web開(kāi)發(fā)、安卓開(kāi)發(fā)、iOS開(kāi)發(fā)、C/C++、.NET、Linux、數(shù)據(jù)庫(kù)、運(yùn)維等。 |
|
來(lái)自: 西北望msm66g9f > 《文件夾1》