Kotlin學習筆記之 13 基礎操作符run焦除、with、let险绘、also踢京、apply

首發(fā)于公眾號: DSGtalk1989

13.基礎操作符run、with宦棺、let、also黔帕、apply

使用流程
  • T.run和run

    對象的run方法代咸,在方法體中的最后一行可以做返回值,且方法體中的this代表對象本身的引用成黄。

    val str: String = "Boss"
      val result = str.run {
          print(this) // 參數(shù)
          69 //區(qū)間返回值
      }
    

    直接使用run方法呐芥,其實就是class本身調(diào)用的run,所以this指向的是class奋岁。

    val str: String = "Boss"
      val result : Int = run {
          print(this) // 參數(shù)  this@class
          69 //區(qū)間返回值
      }
    
  • T.let

    run方法一樣思瘟,也會返回最后一樣的值。不同的是引用對象T用的是it而不是this闻伶,一般這種情況下滨攻,之所以使用it不使用this是由于this用來表示外面的類class

    val str: String = "Boss"
      val result : Int = str.let {
          print(it) // 參數(shù)
          print(this) // this@class
          69 //區(qū)間返回值
      }
    

    let還有一個比較牛逼的地方,可以用作對null的安全過濾,?.let調(diào)用當出現(xiàn)null的時候?qū)⒉粫\行l(wèi)et的方法

    val listWithNulls: List<String?> = listOf("Kotlin", null)
      for (item in listWithNulls) {
            //此處不會打印出null光绕,只會打印出null
          item?.let { println(it) }
      }
    
  • T.also

    跟上面兩個方法不同的是女嘲,返回對象本身,即不管我們在方法體中做任何操作诞帐,在方法體的最后一行返回任何東西欣尼,都是返回的T。同時方法體中也是用it來代表對象本身停蕉,this代表類class愕鼓,跟上面的let唯一不同的就是let最終返回的方法體最后一行,而also放回的是對象本身

    val str: String = "Boss"
      val result : String = str.also {
          print(it) // 參數(shù)
          print(this) // this@class
          69 //區(qū)間返回值
      }
    
  • T.apply

    使用this慧起,不用it菇晃。并且返回對象本身。

    val str: String = "Boss"
    val result : String = str.apply {
          print(this) // 參數(shù)
          69 //區(qū)間返回值
      }
    
  • with(T)

    可以理解成也是class調(diào)的方法完慧,跟run方法不同的是谋旦,run方法中this代表的是類class,而withthis代表的是T屈尼。同時返回的是方法體的最后一行

    val result1 : Int = with(str) {
          print(this) // 接收者
          69 //區(qū)間返回值
      }
    
  • 總結

    • 要么只能用this代表自己册着,要么就是it代表自己,this代表對象所在類
    • also脾歧,apply返回對象本身甲捏,letrun返回方法體最后一行鞭执。
    • letalsothisit司顿,applyrun只有it

    不用去強記,IDE自帶提醒和報錯兄纺,久而久之大溜,自然會記得。


Kotlin學習筆記之 1 基礎語法

Kotlin學習筆記之 2 基本數(shù)據(jù)類型

Kotlin學習筆記之 3 條件控制

Kotlin學習筆記之 4 循環(huán)控制

Kotlin學習筆記之 5 類和對象

Kotlin學習筆記之 6 繼承

Kotlin學習筆記之 7 接口

Kotlin學習筆記之 8 擴展

Kotlin學習筆記之 9 數(shù)據(jù)類與密封類

Kotlin學習筆記之 10 泛型

Kotlin學習筆記之 11 枚舉類

Kotlin學習筆記之 12 對象表達式和對象聲明

Kotlin學習筆記之 13 基礎操作符run估脆、with钦奋、let、also疙赠、apply

Kotlin學習筆記之 14 包與導入

Kotlin學習筆記之 15 伴生對象

Kotlin學習筆記之 16 委托

Kotlin學習筆記之 17 可觀察屬性

Kotlin學習筆記之 18 函數(shù)

Kotlin學習筆記之 19 高階函數(shù)與 lambda 表達式

Kotlin學習筆記之 20 內(nèi)聯(lián)函數(shù)

Kotlin學習筆記之 21 解構聲明

Kotlin學習筆記之 22 集合

Kotlin學習筆記之 23 相等判斷

Kotlin學習筆記之 24 操作符重載

Kotlin學習筆記之 25 異常捕捉

Kotlin學習筆記之 26 反射

Kotlin學習筆記之 27 類型別名

Kotlin學習筆記之 28 協(xié)程基礎

Kotlin學習筆記之 29 上下文與調(diào)度器

Kotlin學習筆記之 30 協(xié)程取消與超時

Kotlin學習筆記之 31 協(xié)程掛起函數(shù)的組合

Kotlin學習筆記之 32 協(xié)程異常處理

Kotlin學習筆記之 33 協(xié)程 & Retrofit

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末付材,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子圃阳,更是在濱河造成了極大的恐慌厌衔,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捍岳,死亡現(xiàn)場離奇詭異富寿,居然都是意外死亡睬隶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門作喘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來理疙,“玉大人,你說我怎么就攤上這事泞坦〗严停” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵贰锁,是天一觀的道長赃梧。 經(jīng)常有香客問我,道長豌熄,這世上最難降的妖魔是什么授嘀? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮锣险,結果婚禮上蹄皱,老公的妹妹穿的比我還像新娘。我一直安慰自己芯肤,他們只是感情好巷折,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著崖咨,像睡著了一般锻拘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上击蹲,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天署拟,我揣著相機與錄音,去河邊找鬼歌豺。 笑死推穷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的类咧。 我是一名探鬼主播缨恒,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼轮听!你這毒婦竟也來了?” 一聲冷哼從身側響起岭佳,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤血巍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后珊随,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體述寡,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡柿隙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲫凶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禀崖。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖螟炫,靈堂內(nèi)的尸體忽然破棺而出波附,到底是詐尸還是另有隱情,我是刑警寧澤昼钻,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布掸屡,位于F島的核電站,受9級特大地震影響然评,放射性物質(zhì)發(fā)生泄漏仅财。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一碗淌、第九天 我趴在偏房一處隱蔽的房頂上張望盏求。 院中可真熱鬧,春花似錦亿眠、人聲如沸碎罚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽魂莫。三九已至,卻和暖如春爹耗,著一層夾襖步出監(jiān)牢的瞬間耙考,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工潭兽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留倦始,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓山卦,卻偏偏與公主長得像鞋邑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子账蓉,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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