成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Kotlin是什么意思

Kotlin是什么意思,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括沙灣網(wǎng)站建設(shè)、沙灣網(wǎng)站制作、沙灣網(wǎng)頁制作以及沙灣網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,沙灣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到沙灣省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

一、Kotlin是什么

Kotlin 是一個(gè)用于現(xiàn)代多平臺應(yīng)用的靜態(tài)編程語言,由 JetBrains 開發(fā)。Kotlin可以編譯成Java字節(jié)碼,也可以編譯成JavaScript,方便在沒有JVM的設(shè)備上運(yùn)行。Kotlin已正式成為Android官方支持開發(fā)語言。

二、Kotlin的就應(yīng)用領(lǐng)域

學(xué)完kotlin能成為全棧工程師。

不僅能編寫web前端,web后端,Android移動端,還可以編寫server腳本,桌面游戲。

三、Kotlin的特點(diǎn)

靜態(tài)強(qiáng)類型性語言

運(yùn)行在JVM上

可編譯成JavaScript代碼

與Java100%兼容

四、Kotlin的發(fā)展趨勢

2011年進(jìn)行開源,2017年在github上star數(shù)量已經(jīng)達(dá)到17k。目前 花瓣、豆瓣 APP 以及 JetBrains 全線編輯器都在使用 Kotlin,國內(nèi)很多初創(chuàng)公司也都

在使用 Kotlin(尤其是應(yīng)用于 Android 開發(fā))

五、Kotlin的優(yōu)勢

全面支持Lambda表達(dá)式

數(shù)據(jù)類(Data classes)

函數(shù)字面量和內(nèi)聯(lián)函數(shù)(Function literals & inline functions)

函數(shù)擴(kuò)展(Extension functions)

空安全(Null safety)

智能轉(zhuǎn)換(Smart casts)

字符串模版(String templates)

主構(gòu)造函數(shù)(Primary constructors)

類委托(Class delegation)

類型推斷(Type inference)

單例(Singletons)

聲明點(diǎn)變量(Declaration-site variance)

區(qū)間表達(dá)式(Range expressions)

六、Kotlin中的函數(shù)

內(nèi)聯(lián)函數(shù)

Android開發(fā)中,打印信息一般我們會用到Log類,Log中每個(gè)方法我們都要傳兩個(gè)參數(shù),第一個(gè)tag參數(shù)在Kotlin中我們可以像下面封裝一下,這樣就只需要傳一個(gè)參數(shù)。

inline fun <reified T> T.debug(log:Any)

{

Log.d(T::class.simpleName, log.toString())

}

它可以通過泛型參數(shù) T 來獲取到T的具體類型,并且拿到它的類名&mdash;&mdash;當(dāng)然,如果你愿意,你甚至可以調(diào)用它的構(gòu)造方法來構(gòu)造一個(gè)對象出來&mdash;&mdash;為什么 Kotlin 可以做到呢?因?yàn)檫@段代碼是 inline 的,最終編譯時(shí)是要編譯到調(diào)用它的代碼塊中,這時(shí)候T的類型實(shí)際上是確定的,因而 Kotlin 通過 reified 這個(gè)關(guān)鍵字告訴編譯器,T 這個(gè)參數(shù)可不只是個(gè)擺設(shè),我要把它當(dāng)實(shí)際類型來用。

在高階函數(shù)前增加inline注解可以指定函數(shù)內(nèi)聯(lián),inline 標(biāo)記即影響函數(shù)本身也影響傳遞進(jìn)來的 lambda 函數(shù):所有的這些都將被關(guān)聯(lián)到調(diào)用點(diǎn)。內(nèi)聯(lián)可能會引起生成代碼增長,但我們可以合理的解決它(不要內(nèi)聯(lián)太大的函數(shù))。也可以使用noinline來指定某些函數(shù)不進(jìn)行內(nèi)聯(lián)。

inline fun foo(inlined: () -> Uint, @noinline notInlined: () -> Unit) {

//...

}

可以內(nèi)聯(lián)的 lambda 表達(dá)式只能在內(nèi)聯(lián)函數(shù)內(nèi)部調(diào)用或者作為可內(nèi)聯(lián)的參數(shù)傳遞, 但是 noinline 的可以以任何我們喜歡的方式操作:存儲在字段中、傳送它等等。

單表達(dá)式函數(shù)

如果一個(gè)函數(shù)的函數(shù)體只有一個(gè)表達(dá)式,函數(shù)體可以直接寫在 “=”之后,也就是這樣:

fun double(x: Int): Int = x * 2

fun eval(expr: Expr): Double = when(expr) {

is Expr.Const -> expr.number

is Expr.Sum -> eval(expr.e1) + eval(expr.e2)

Expr.NotANumber -> Double.NaN

// the `else` clause is not required because we've covered all the cases

}

這里使用了when關(guān)鍵字,類似于java中的switch,但比之更強(qiáng)大。

匿名函數(shù)

/**

* 匿名函數(shù),沒有名字,其他語法和常規(guī)函數(shù)類似

*

* 聲明一個(gè)匿名函數(shù),這里用表達(dá)式來表示函數(shù)體,也就是單表達(dá)式函數(shù)

*/

var test3= fun(x:Int,y:Int):Int=x+y

/**

* 聲明一個(gè)匿名函數(shù),這里用代碼塊來表示函數(shù)體

*/

var test4= fun(x:Int,y:Int):Int {

return x+y

}

/**

* 聲明一個(gè)匿名函數(shù),當(dāng)返回值類型可以推斷出,可以省略

*/

var test5= fun(x:Int,y:Int)=x+y

fun main(args: Array<String>) {

println(test3(1,2))

println(test4(1,2))

println(test5(1,2))

}

高階函數(shù)與lambda表達(dá)式

高階函數(shù)就是可以接受函數(shù)作為參數(shù)或返回一個(gè)函數(shù)的函數(shù)。比如 lock() 就是一個(gè)很好的例子

fun lock<T>(lock: Lock, body: () -> T ) : T {

lock.lock()

try {

return body()

}

finally {

lock.unlock()

}

}

關(guān)于Kotlin是什么意思問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。

新聞標(biāo)題:Kotlin是什么意思
URL標(biāo)題:http://jinyejixie.com/article46/ijgihg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化面包屑導(dǎo)航、網(wǎng)站收錄、云服務(wù)器定制網(wǎng)站、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
中阳县| 万荣县| 扎兰屯市| 四平市| 日喀则市| 富裕县| 贺兰县| 金沙县| 屯门区| 宜昌市| 石台县| 林甸县| 澄迈县| 固原市| 宜黄县| 永州市| 合阳县| 静海县| 磐安县| 定陶县| 苍梧县| 江北区| 阿克陶县| 阿城市| 即墨市| 东丰县| 汾西县| 古交市| 乐安县| 古田县| 方山县| 伽师县| 鹤峰县| 南乐县| 建湖县| 通渭县| 金乡县| 读书| 金阳县| 黄山市| 林周县|