真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

dataclass與objectclass函數(shù)如何在Kotlin中使用

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)dataclass與objectclass函數(shù)如何在Kotlin中使用,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

目前成都創(chuàng)新互聯(lián)公司已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、勐臘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

Kotlin基礎(chǔ)教程之dataclass,objectclass

Kotlin提供了一些機(jī)制來(lái)擴(kuò)展已有的類,如下:

還記得我們之前寫過(guò)的Point3D類嗎?(將其略作修改,將成員變量改為Double類型)

讓我們?yōu)槠鋽U(kuò)展一個(gè)length函數(shù)

dataclass與objectclass函數(shù)如何在Kotlin中使用

擴(kuò)展的方法很簡(jiǎn)單,只要在函數(shù)名前面加上類名就行了.

這樣Point3D的對(duì)象就有了一個(gè)名為length的方法.

運(yùn)行的結(jié)果不出所料:

dataclass與objectclass函數(shù)如何在Kotlin中使用

除此之外,在Kotlin中還有一些特殊的類,比如Data Class:

dataclass與objectclass函數(shù)如何在Kotlin中使用

有些類只包含數(shù)據(jù),不需要包含方法,就可以聲明為data class,當(dāng)然data class并不是不能包含方法.

data class最大的特色在于copy函數(shù)和多變量賦值,可以在一條語(yǔ)句里面把不同的字段賦值給不同的變量.

運(yùn)行結(jié)果如下:

dataclass與objectclass函數(shù)如何在Kotlin中使用

Kotlin一般在類中不允許static成員,前面曾經(jīng)說(shuō)過(guò)可以使用companion object來(lái)創(chuàng)建一個(gè)伴生對(duì)象從而可以使用static成員.

這里還有一種方法就是使用object關(guān)鍵字聲明一種特殊的類,這個(gè)類只有一個(gè)實(shí)例,因此看起來(lái)整個(gè)類就好像是一個(gè)對(duì)象一樣.如下:

dataclass與objectclass函數(shù)如何在Kotlin中使用

這里把類聲明時(shí)的class關(guān)鍵字改成了object,這個(gè)類里面的成員默認(rèn)都是static的.

另外我們可以看到在這段代碼中出現(xiàn)了一個(gè)use函數(shù),這個(gè)函數(shù)的參數(shù)是一個(gè)lambda表達(dá)式或者說(shuō)一個(gè)匿名函數(shù).

其參數(shù)必須實(shí)現(xiàn)Closeable接口,其參數(shù)在函數(shù)結(jié)束后會(huì)自動(dòng)關(guān)閉,調(diào)用其close方法,無(wú)論是否發(fā)生異常.

其實(shí)這個(gè)用法來(lái)自于Java7中引入的一個(gè)語(yǔ)法,在Java7中引入的這個(gè)語(yǔ)法名為try-with-resource,其對(duì)應(yīng)的Java代碼如下:

dataclass與objectclass函數(shù)如何在Kotlin中使用

server變量在try語(yǔ)句中被聲明并初始化,無(wú)論是否發(fā)生異常,最后server都會(huì)被自動(dòng)關(guān)閉.

之所以引入這種語(yǔ)法,是為了解決finally語(yǔ)句的不足.

在Kotlin中的use函數(shù)就是實(shí)現(xiàn)了Java中try-with-resource語(yǔ)句的功能.

這段Kotlin代碼寫的是一個(gè)多線程Socket服務(wù)器的demo,其他部分的代碼如下:

dataclass與objectclass函數(shù)如何在Kotlin中使用

客戶端代碼:

dataclass與objectclass函數(shù)如何在Kotlin中使用

dataclass與objectclass函數(shù)如何在Kotlin中使用

dataclass與objectclass函數(shù)如何在Kotlin中使用

當(dāng)Socket服務(wù)器啟動(dòng)后,再啟動(dòng)SocketClient,運(yùn)行結(jié)果如下:

服務(wù)器輸出:

dataclass與objectclass函數(shù)如何在Kotlin中使用

客戶端輸出:

dataclass與objectclass函數(shù)如何在Kotlin中使用

可以看到Socket服務(wù)已經(jīng)正常啟動(dòng)了.

上述就是小編為大家分享的dataclass與objectclass函數(shù)如何在Kotlin中使用了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章名稱:dataclass與objectclass函數(shù)如何在Kotlin中使用
路徑分享:http://weahome.cn/article/jpehhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部