Android開發(fā)者需知的5種Kotlin特性
譯文【51CTO.com快譯】業(yè)界一直普遍認(rèn)為,Java是Android操作系統(tǒng)的核心。因此,對于每一位Android開發(fā)人員來說,Java是他們的首要選擇。不過直到Kotlin的出現(xiàn)之后,這種狀態(tài)被完全顛覆了。Kotlin也是一種編程語言。而在某種程度上,它的開發(fā)特性比Java更好,可以說它是一種更為有效的替代方案。
最近在Android社區(qū)里,大家對于Kotlin的討論熱情真是有增無減。在此,我想乘此機(jī)會和大家討論一下,作為Android開發(fā)者,需要知曉并掌握的五種Kotlin關(guān)鍵特性。
Kotlin勝過Java之處
由JetBrains設(shè)計和開發(fā)的Kotlin解決了Java的一系列問題。目前,雖然Java并不會在一段時間內(nèi)很快淘汰,但是在可以預(yù)見的未來,Kotlin將繼續(xù)在Android開發(fā)領(lǐng)域發(fā)揮主導(dǎo)作用。
讓我們首先來看看Kotlin在哪些關(guān)鍵領(lǐng)域,有著勝過Java的優(yōu)勢:
- Kotlin帶有一系列能夠與Java協(xié)同工作的工具和框架。
- 作為一門編程語言,Kotlin比Java更明確、更簡潔。
- 與Java相比,Kotlin有助于減少程序的整體代碼量,并能夠***限度地減少錯誤率。
- 與Java不同,Kotlin加載了一種高級編譯器,可以在編譯過程與運行環(huán)境中,檢查各種錯誤。
1. 效率
Kotlin是一種學(xué)習(xí)曲線較平緩的編程語言。同時,它能夠幫助開發(fā)人員通過最少的代碼量,構(gòu)建出自己的應(yīng)用。因此,在學(xué)習(xí)、掌握語言、以及編寫應(yīng)用等方面,Kotlin能夠幫助程序員更快速地完成任務(wù)。
值得一提的是,它能夠?qū)⒊绦虻拇a行數(shù)降到***。與Java相比,其普通代碼的長度約為Java的五分之四。因此,Kotlin為開發(fā)人員提供了更好的、生成更高質(zhì)量應(yīng)用程序的機(jī)會。
2. 空安全
空安全(Null Safety)特性是Kotlin的關(guān)鍵優(yōu)勢之一,也是每一位Android開發(fā)人員覺得非常實用的一項特性。在使用Java編寫代碼時,每位Java開發(fā)人員都必須反復(fù)處置NullPointerException的相關(guān)問題。雖然這種特殊元素有助于我們測試軟件的產(chǎn)品質(zhì)量,但是實際上,它在很大程度上降低了程序員們的開發(fā)速度和效率。
因此,該特性從根源上減少了各種應(yīng)用在運行環(huán)境中的復(fù)雜性。相應(yīng)地,開發(fā)人員也樂得在編譯代碼時,不再顧慮各種空指針的異常。而在Java環(huán)境中,根本就沒有關(guān)于空安全特性的相關(guān)信息與服務(wù)。
值得注意的是,Kotlin在初始化的早期階段為Java開發(fā)人員提供了空安全的特性。也就是說,開發(fā)人員可以在初始化的開始時,就判定是否需要給空安全進(jìn)行賦值。此后,Kotlin便能夠通過編譯器來提供空安全性。此舉大幅降低了開發(fā)人員在運行環(huán)境中所面臨的各種空指針異常(Null Point Exceptions)風(fēng)險。
3. 延遲加載特性
更快的加載速度當(dāng)然是任何一款優(yōu)質(zhì)應(yīng)用的最重要指標(biāo)之一。由Kotlin提供的延遲加載(Lazy-Loading)特性能夠很好地解決此類問題。當(dāng)您使用Kotlin進(jìn)行Android開發(fā)時,該特性將幫助您最小化應(yīng)用程序的啟動時間。在實際應(yīng)用中,Kotlin能夠更快地加載其初始化的必要內(nèi)容,而在后續(xù)的加載過程中,再將其他一些非必需的元素和內(nèi)容,逐步加載到應(yīng)用頁面上。
因此,通過這種延遲加載的特性,使用Kotlin進(jìn)行編程的Android開發(fā)人員,可以優(yōu)先考慮那些主要的資源,并將其保留在主內(nèi)存中,以確保實現(xiàn)更快的加載速度。而與此同時,他們也可以選擇將某些次要資源保留在輔助內(nèi)存里。
4. 擴(kuò)展函數(shù)
擴(kuò)展函數(shù)也被Kotlin開發(fā)人員經(jīng)常稱為標(biāo)準(zhǔn)庫函數(shù)(Standard Library Functions)。它是一項能夠在很多方面幫助到開發(fā)人員的關(guān)鍵功能。在使用Kotlin進(jìn)行編程時,我們可以將它作為面向?qū)ο?object-oriented)語言的基本函數(shù),進(jìn)行按需擴(kuò)展。
雖然Java只允許開發(fā)人員在常見的主流類中包含新的功能函數(shù),但是那些被進(jìn)一步擴(kuò)展的類,卻可能會給開發(fā)人員訪問各種即用型(ready-to-use)部件帶來麻煩。相比之下,Kotlin則允許我們將這些函數(shù)按需進(jìn)行擴(kuò)展。同時,我們也能夠?qū)⒏鞣N新的函數(shù)平滑地添加到現(xiàn)有的類中。此外,Kotlin的標(biāo)準(zhǔn)庫還提供了對于各種標(biāo)準(zhǔn)函數(shù)的豐富選項。
5. 集合和流
如果您是一位Java開發(fā)人員,那么在Java應(yīng)用的開發(fā)過程中,您不可避免地需要了解和處理各種對象集合。出現(xiàn)此類情況的原因是:各種Java對象需要通過該過程,來轉(zhuǎn)換為不同的表示元素。因此,Java通常會產(chǎn)生平行的翻譯對象(translated objects)流,而此舉則會導(dǎo)致整個應(yīng)用程序的速度變慢。
作為一種高級編程語言,Kotlin使用了不可變集合(immutable collections)來解決上述問題。在此,各種豐富的函數(shù)API將能夠自動地返回一些具有相同功能的集合。
結(jié)論
目前,盡管Java仍有著許多先進(jìn)的功能與優(yōu)勢,但是對于Android開發(fā)人員來說, 作為后起之秀的Kotlin有著與Java良好的互操作性,以及較平緩的學(xué)習(xí)曲線。因此,它已經(jīng)成為了Android開發(fā)人員的另一種***選擇。
原文標(biāo)題:5 Kotlin Features That Every Android App Developer Must Know,作者:Atman Rathod
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】