Kotlin基礎(chǔ)語法學(xué)習(xí)記錄

  • var和val的區(qū)別
    var是一個普通的變量,和java中聲明變量的方式一樣。
    val是一個只讀變量,相當(dāng)于java中變量前使用了final修飾。
  • lateinit和lazy
    lateinit只用于var仲器,而lazy只用于val
    lateinit不能用在可控屬性上和java的基本類型上,否則會報錯
    錯誤:lateinit var amount:Double
  • inline內(nèi)聯(lián)函數(shù)
    調(diào)用一個方法是一個壓棧和出棧的過程仰冠,調(diào)用方法時將棧指針壓入方法棧乏冀,然后執(zhí)行方法體,方法結(jié)束時棧指針出棧洋只,這個壓棧和出棧的過程會耗費(fèi)資源辆沦,這個過程中傳遞形參也會耗費(fèi)資源。
    為什么需要inline
    有些簡單的方法會被頻繁調(diào)用识虚,什么叫簡單的方法呢肢扯,舉個例子:
    fun <T> check(lock: Lock, body: () -> T): T {
    lock.lock()
    try {
    return body()
    } finally {
    lock.unlock()
    }
    }
    這個check方法的方法中,不會將它的形參再傳遞給其他方法担锤。我們調(diào)用一下check方法
    check(l, {"我是lambda方法體"})//l是一個Lock對象
    對于編譯器來說蔚晨,調(diào)用check方法就要將參數(shù)l和lambda表達(dá)式{“我是lambda方法體"}進(jìn)行傳遞,還要將check方法進(jìn)行壓棧處理,這個過程就會耗費(fèi)資源铭腕。
    如果我們把check方法刪除银择,直接執(zhí)行check的方法體呢?這樣做的效果和調(diào)用check方法是一樣累舷,但是代碼看起來就太不好看了浩考,而且也會出現(xiàn)代碼冗余。于是就把它抽成了check方法被盈,那么如上所述析孽,一旦這個方法被頻繁調(diào)用,壓棧出棧將會帶來性能問題只怎。針對這個問題袜瞬,kotlin引入了inline關(guān)鍵字。我們在check方法前加上inline尝盼,然后再調(diào)用check方法吞滞,編譯器就會在編譯期幫我們進(jìn)行優(yōu)化佑菩,將我們寫的代碼:
    check(l, {"我是lambda方法體"})//l是一個Lock對象
    換成
    l.lock() try { return "我是lambda方法體" } finally { l.unlock() }
    也就是說inline關(guān)鍵字實(shí)際上增加了代碼量盾沫,但是提升了性能,而且增加的代碼是在編譯器執(zhí)行的殿漠,對程序可讀性不會造成影響赴精。
  • Kotlin中open,final绞幌,abstract修飾符
    在Kotlin中蕾哟,所有的類默認(rèn)都是final的,如果你需要允許它可以被繼承莲蜘,那么你需要使用open聲明:
    //這個類具有open屬性谭确,可以被其他類繼承
    open class People: Speakable{
    //open的方法被實(shí)現(xiàn)和覆寫,該方法也是open
    override fun say() {}
    //final屬性的方法票渠,不可被覆寫
    fun sayHello() {}
    //open屬性的方法逐哈,可以被繼承和覆寫
    open fun sayName() {}
    }
    當(dāng)然,也可以阻止某些方法被復(fù)寫:
    open class People: Speakable{
    //final修飾一個原本具有open屬性的方法问顷,使其變得不可再被覆寫
    final override fun say() {}
    }
    在Kotlin中昂秃,abstract的用法幾乎和java一致,值得一提的是杜窄,當(dāng)你使用abstract修飾符的時候肠骆,可以忽略open修飾符,因?yàn)楸籥bstract修飾的類默認(rèn)具有open屬性塞耕。
  • Kotlin中json生成Bean的插件JsonToKotlinClass
  • Kotlin中用object修飾的類蚀腿,被稱之為靜態(tài)類;使用“companion objet”修飾靜態(tài)方法扫外,可以使用類名.方法名的形式調(diào)用莉钙。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纱注,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子胆胰,更是在濱河造成了極大的恐慌狞贱,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜀涨,死亡現(xiàn)場離奇詭異瞎嬉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)厚柳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進(jìn)店門氧枣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人别垮,你說我怎么就攤上這事便监。” “怎么了碳想?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵烧董,是天一觀的道長。 經(jīng)常有香客問我胧奔,道長逊移,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任龙填,我火速辦了婚禮胳泉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘岩遗。我一直安慰自己扇商,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布宿礁。 她就那樣靜靜地躺著案铺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窘拯。 梳的紋絲不亂的頭發(fā)上红且,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機(jī)與錄音涤姊,去河邊找鬼暇番。 笑死,一個胖子當(dāng)著我的面吹牛思喊,可吹牛的內(nèi)容都是我干的壁酬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼舆乔!你這毒婦竟也來了岳服?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤希俩,失蹤者是張志新(化名)和其女友劉穎吊宋,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體颜武,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡璃搜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳞上。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片这吻。...
    茶點(diǎn)故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖篙议,靈堂內(nèi)的尸體忽然破棺而出唾糯,到底是詐尸還是另有隱情,我是刑警寧澤鬼贱,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布移怯,位于F島的核電站,受9級特大地震影響吩愧,放射性物質(zhì)發(fā)生泄漏芋酌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一雁佳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧同云,春花似錦糖权、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旱易,卻和暖如春禁偎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阀坏。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工如暖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人忌堂。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓盒至,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子枷遂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 本文是在學(xué)習(xí)和使用kotlin時的一些總結(jié)與體會樱衷,一些代碼示例來自于網(wǎng)絡(luò)或Kotlin官方文檔,持續(xù)更新... 對...
    竹塵居士閱讀 3,269評論 0 8
  • 前言 人生苦多酒唉,快來 Kotlin 矩桂,快速學(xué)習(xí)Kotlin! 什么是Kotlin痪伦? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,168評論 9 118
  • 不重要的廢話 前段時間看了一遍《Programming Kotlin》耍鬓,主要目的是想提高自己的英文閱讀能力,能力提...
    珞澤珈群閱讀 3,344評論 1 7
  • 組織中第四種浪費(fèi)時間的原因是信息功能不良和表達(dá)方式不當(dāng)流妻。我們要了解信息不等于事實(shí)牲蜀,且不同于數(shù)據(jù)。數(shù)據(jù)是比較客觀的數(shù)...
    穎子如影隨形閱讀 353評論 0 1
  • 七月二十七日绅这,天空烏云密布 預(yù)想的暴風(fēng)雨并沒有來 預(yù)想的時間更沒有片刻停留 早起的麻雀 在電線桿上嬉鬧 青蛙還在打...
    仗劍走天涯y閱讀 170評論 1 2