自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android開(kāi)發(fā)者需知的5種Kotlin特性

譯文
移動(dòng)開(kāi)發(fā) Android 后端
Kotlin有著與Java良好的互操作性,以及較平緩的學(xué)習(xí)曲線。作為Android開(kāi)發(fā)者,您需要知曉并掌握它的五種關(guān)鍵特性。

【51CTO.com快譯】業(yè)界一直普遍認(rèn)為,Java是Android操作系統(tǒng)的核心。因此,對(duì)于每一位Android開(kāi)發(fā)人員來(lái)說(shuō),Java是他們的首要選擇。不過(guò)直到Kotlin的出現(xiàn)之后,這種狀態(tài)被完全顛覆了。Kotlin也是一種編程語(yǔ)言。而在某種程度上,它的開(kāi)發(fā)特性比Java更好,可以說(shuō)它是一種更為有效的替代方案。

[[262418]]

最近在Android社區(qū)里,大家對(duì)于Kotlin的討論熱情真是有增無(wú)減。在此,我想乘此機(jī)會(huì)和大家討論一下,作為Android開(kāi)發(fā)者,需要知曉并掌握的五種Kotlin關(guān)鍵特性。

Kotlin勝過(guò)Java之處

由JetBrains設(shè)計(jì)和開(kāi)發(fā)的Kotlin解決了Java的一系列問(wèn)題。目前,雖然Java并不會(huì)在一段時(shí)間內(nèi)很快淘汰,但是在可以預(yù)見(jiàn)的未來(lái),Kotlin將繼續(xù)在Android開(kāi)發(fā)領(lǐng)域發(fā)揮主導(dǎo)作用。

讓我們首先來(lái)看看Kotlin在哪些關(guān)鍵領(lǐng)域,有著勝過(guò)Java的優(yōu)勢(shì):

  • Kotlin帶有一系列能夠與Java協(xié)同工作的工具和框架。
  • 作為一門(mén)編程語(yǔ)言,Kotlin比Java更明確、更簡(jiǎn)潔。
  • 與Java相比,Kotlin有助于減少程序的整體代碼量,并能夠***限度地減少錯(cuò)誤率。
  • 與Java不同,Kotlin加載了一種高級(jí)編譯器,可以在編譯過(guò)程與運(yùn)行環(huán)境中,檢查各種錯(cuò)誤。

1. 效率

Kotlin是一種學(xué)習(xí)曲線較平緩的編程語(yǔ)言。同時(shí),它能夠幫助開(kāi)發(fā)人員通過(guò)最少的代碼量,構(gòu)建出自己的應(yīng)用。因此,在學(xué)習(xí)、掌握語(yǔ)言、以及編寫(xiě)應(yīng)用等方面,Kotlin能夠幫助程序員更快速地完成任務(wù)。

值得一提的是,它能夠?qū)⒊绦虻拇a行數(shù)降到***。與Java相比,其普通代碼的長(zhǎng)度約為Java的五分之四。因此,Kotlin為開(kāi)發(fā)人員提供了更好的、生成更高質(zhì)量應(yīng)用程序的機(jī)會(huì)。

2. 空安全

空安全(Null Safety)特性是Kotlin的關(guān)鍵優(yōu)勢(shì)之一,也是每一位Android開(kāi)發(fā)人員覺(jué)得非常實(shí)用的一項(xiàng)特性。在使用Java編寫(xiě)代碼時(shí),每位Java開(kāi)發(fā)人員都必須反復(fù)處置NullPointerException的相關(guān)問(wèn)題。雖然這種特殊元素有助于我們測(cè)試軟件的產(chǎn)品質(zhì)量,但是實(shí)際上,它在很大程度上降低了程序員們的開(kāi)發(fā)速度和效率。

因此,該特性從根源上減少了各種應(yīng)用在運(yùn)行環(huán)境中的復(fù)雜性。相應(yīng)地,開(kāi)發(fā)人員也樂(lè)得在編譯代碼時(shí),不再顧慮各種空指針的異常。而在Java環(huán)境中,根本就沒(méi)有關(guān)于空安全特性的相關(guān)信息與服務(wù)。

值得注意的是,Kotlin在初始化的早期階段為Java開(kāi)發(fā)人員提供了空安全的特性。也就是說(shuō),開(kāi)發(fā)人員可以在初始化的開(kāi)始時(shí),就判定是否需要給空安全進(jìn)行賦值。此后,Kotlin便能夠通過(guò)編譯器來(lái)提供空安全性。此舉大幅降低了開(kāi)發(fā)人員在運(yùn)行環(huán)境中所面臨的各種空指針異常(Null Point Exceptions)風(fēng)險(xiǎn)。

3. 延遲加載特性

更快的加載速度當(dāng)然是任何一款優(yōu)質(zhì)應(yīng)用的最重要指標(biāo)之一。由Kotlin提供的延遲加載(Lazy-Loading)特性能夠很好地解決此類(lèi)問(wèn)題。當(dāng)您使用Kotlin進(jìn)行Android開(kāi)發(fā)時(shí),該特性將幫助您最小化應(yīng)用程序的啟動(dòng)時(shí)間。在實(shí)際應(yīng)用中,Kotlin能夠更快地加載其初始化的必要內(nèi)容,而在后續(xù)的加載過(guò)程中,再將其他一些非必需的元素和內(nèi)容,逐步加載到應(yīng)用頁(yè)面上。

因此,通過(guò)這種延遲加載的特性,使用Kotlin進(jìn)行編程的Android開(kāi)發(fā)人員,可以優(yōu)先考慮那些主要的資源,并將其保留在主內(nèi)存中,以確保實(shí)現(xiàn)更快的加載速度。而與此同時(shí),他們也可以選擇將某些次要資源保留在輔助內(nèi)存里。

4. 擴(kuò)展函數(shù)

擴(kuò)展函數(shù)也被Kotlin開(kāi)發(fā)人員經(jīng)常稱為標(biāo)準(zhǔn)庫(kù)函數(shù)(Standard Library Functions)。它是一項(xiàng)能夠在很多方面幫助到開(kāi)發(fā)人員的關(guān)鍵功能。在使用Kotlin進(jìn)行編程時(shí),我們可以將它作為面向?qū)ο?object-oriented)語(yǔ)言的基本函數(shù),進(jìn)行按需擴(kuò)展。

雖然Java只允許開(kāi)發(fā)人員在常見(jiàn)的主流類(lèi)中包含新的功能函數(shù),但是那些被進(jìn)一步擴(kuò)展的類(lèi),卻可能會(huì)給開(kāi)發(fā)人員訪問(wèn)各種即用型(ready-to-use)部件帶來(lái)麻煩。相比之下,Kotlin則允許我們將這些函數(shù)按需進(jìn)行擴(kuò)展。同時(shí),我們也能夠?qū)⒏鞣N新的函數(shù)平滑地添加到現(xiàn)有的類(lèi)中。此外,Kotlin的標(biāo)準(zhǔn)庫(kù)還提供了對(duì)于各種標(biāo)準(zhǔn)函數(shù)的豐富選項(xiàng)。

5. 集合和流

如果您是一位Java開(kāi)發(fā)人員,那么在Java應(yīng)用的開(kāi)發(fā)過(guò)程中,您不可避免地需要了解和處理各種對(duì)象集合。出現(xiàn)此類(lèi)情況的原因是:各種Java對(duì)象需要通過(guò)該過(guò)程,來(lái)轉(zhuǎn)換為不同的表示元素。因此,Java通常會(huì)產(chǎn)生平行的翻譯對(duì)象(translated objects)流,而此舉則會(huì)導(dǎo)致整個(gè)應(yīng)用程序的速度變慢。

作為一種高級(jí)編程語(yǔ)言,Kotlin使用了不可變集合(immutable collections)來(lái)解決上述問(wèn)題。在此,各種豐富的函數(shù)API將能夠自動(dòng)地返回一些具有相同功能的集合。

結(jié)論

目前,盡管Java仍有著許多先進(jìn)的功能與優(yōu)勢(shì),但是對(duì)于Android開(kāi)發(fā)人員來(lái)說(shuō), 作為后起之秀的Kotlin有著與Java良好的互操作性,以及較平緩的學(xué)習(xí)曲線。因此,它已經(jīng)成為了Android開(kāi)發(fā)人員的另一種***選擇。

原文標(biāo)題:5 Kotlin Features That Every Android App Developer Must Know,作者:Atman Rathod

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:未麗燕 來(lái)源: 51CTO.com
相關(guān)推薦

2022-06-15 09:01:57

開(kāi)發(fā)Java

2011-08-09 11:13:07

iPhone游戲網(wǎng)絡(luò)連接測(cè)試游戲

2017-05-19 16:40:41

AndroidKotlin開(kāi)發(fā)者

2010-11-26 09:57:59

2013-07-24 13:44:25

APP開(kāi)發(fā)者改變

2013-07-29 11:11:29

開(kāi)發(fā)者折磨方式

2011-07-29 17:36:25

程序員

2012-06-13 01:23:30

開(kāi)發(fā)者程序員

2024-07-05 11:34:07

2009-05-13 08:32:53

GoogleAndroid移動(dòng)OS

2017-06-22 10:39:06

Android開(kāi)發(fā)者未來(lái)

2012-09-19 10:25:56

iPhone 5游戲開(kāi)發(fā)者

2019-02-25 10:35:04

Vim插件編程語(yǔ)言

2012-03-13 09:17:38

開(kāi)發(fā)

2018-10-29 13:50:40

2009-05-12 09:35:40

移動(dòng)MoblinAndroid

2010-10-19 11:14:06

2011-03-17 11:45:30

iPad 2應(yīng)用開(kāi)發(fā)者

2013-07-18 17:22:07

Android開(kāi)發(fā)資源Android開(kāi)發(fā)學(xué)習(xí)Android開(kāi)發(fā)

2011-02-22 14:07:52

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)