Kotlin關(guān)鍵字與操作符

原文鏈接 https://blog.csdn.net/xfhy_/article/details/79153251

Kotlin關(guān)鍵字與操作符

硬關(guān)鍵字

以下符號(hào)會(huì)始終解釋為關(guān)鍵字释牺,不能用作標(biāo)識(shí)符:

  • as
    • 用于類型轉(zhuǎn)換
    • 為導(dǎo)入指定一個(gè)別名
  • as? 用于安全類型轉(zhuǎn)換(它可以在失敗時(shí)返回 null )
  • break 終止循環(huán)的執(zhí)行
  • class 聲明一個(gè)類
  • continue 繼續(xù)最近層循環(huán)的下一步
  • do 開(kāi)始一個(gè) do/while 循環(huán)(后置條件的循環(huán))
  • else 定義一個(gè) if 表達(dá)式條件為 false 時(shí)執(zhí)行的分支
  • false 指定布爾類型的“假”值
  • for 開(kāi)始一個(gè) for 循環(huán)
  • fun 聲明一個(gè)函數(shù)
  • if 開(kāi)始一個(gè) if 表達(dá)式
  • in
    • 指定在 for 循環(huán)中迭代的對(duì)象
    • 用作中綴操作符以檢查一個(gè)值屬于一個(gè)區(qū)間没咙、 一個(gè)集合或者其他定義“contains”方法的實(shí)體
    • 在 when 表達(dá)式中用于上述目的
    • 將一個(gè)類型參數(shù)標(biāo)記為逆變
  • !in
    • 用作中綴操作符以檢查一個(gè)值不屬于一個(gè)區(qū)間、 一個(gè)集合或者其他定義“contains”方法的實(shí)體
    • 在 when 表達(dá)式中用于上述目的
  • interface 聲明一個(gè)接口
  • is
    • 檢查一個(gè)值具有指定類型
    • 在 when 表達(dá)式中用于上述目的
  • !is
    • 檢查一個(gè)值不具有指定類型
    • 在 when 表達(dá)式中用于上述目的
  • null 是表示不指向任何對(duì)象的對(duì)象引用的常量
  • object 同時(shí)聲明一個(gè)類及其實(shí)例
  • package 指定當(dāng)前文件的包
  • return 從最近層的函數(shù)或匿名函數(shù)返回
  • super
    • 引用一個(gè)方法或?qū)傩缘某悓?shí)現(xiàn)
    • 在次構(gòu)造函數(shù)中調(diào)用超類構(gòu)造函數(shù)
  • this
    • 引用當(dāng)前接收者
    • 在次構(gòu)造函數(shù)中調(diào)用同一個(gè)類的另一個(gè)構(gòu)造函數(shù)
  • throw 拋出一個(gè)異常
  • true 指定布爾類型的“真”值
  • try 開(kāi)始一個(gè)異常處理塊
  • typealias 聲明一個(gè)類型別名
  • val 聲明一個(gè)只讀屬性或局部變量 ,盡量用這個(gè)
  • var 聲明一個(gè)可變屬性或局部變量
    *when 開(kāi)始一個(gè) when 表達(dá)式(執(zhí)行其中一個(gè)給定分支)
  • while 開(kāi)始一個(gè) while 循環(huán)(前置條件的循環(huán))

軟關(guān)鍵字

以下符號(hào)在適用的上下文中充當(dāng)關(guān)鍵字祭刚,而在其他上下文中可用作標(biāo)識(shí)符:

  • by
    • 將接口的實(shí)現(xiàn)委托給另一個(gè)對(duì)象
    • 將屬性訪問(wèn)器的實(shí)現(xiàn)委托給另一個(gè)對(duì)象
  • catch開(kāi)始一個(gè)處理指定異常類型的塊
  • constructor 聲明一個(gè)主構(gòu)造函數(shù)或次構(gòu)造函數(shù)
  • delegate 用作注解使用處目標(biāo)
  • dynamic 引用一個(gè) Kotlin/JS 代碼中的動(dòng)態(tài)類型
  • field 用作注解使用處目標(biāo)
  • file 用作注解使用處目標(biāo)
  • finally 開(kāi)始一個(gè)當(dāng) try 塊退出時(shí)總會(huì)執(zhí)行的塊
  • get
    • 聲明屬性的 getter
    • 用作注解使用處目標(biāo)
  • import 將另一個(gè)包中的聲明導(dǎo)入當(dāng)前文件
  • init 開(kāi)始一個(gè)初始化塊
  • param 用作注解使用處目標(biāo)
  • property 用作注解使用處目標(biāo)
  • receiver 用作注解使用處目標(biāo)
  • set
    • 聲明屬性的 setter
    • 用作注解使用處目標(biāo)
  • setparam 用作注解使用處目標(biāo)
  • where 指定泛型類型參數(shù)的約束

修飾符關(guān)鍵字

以下符號(hào)作為聲明中修飾符列表中的關(guān)鍵字涡驮,并可用作其他上下文中的標(biāo)識(shí)符:

  • actual 表示多平臺(tái)項(xiàng)目中的一個(gè)平臺(tái)相關(guān)實(shí)現(xiàn)
  • abstract 將一個(gè)類或成員標(biāo)記為抽象
  • annotation 聲明一個(gè)注解類
  • companion 聲明一個(gè)伴生對(duì)象
  • const 將屬性標(biāo)記為編譯期常量
  • crossinline 禁止傳遞給內(nèi)聯(lián)函數(shù)的 lambda 中的非局部返回
  • data 指示編譯器為類生成典型成員
  • enum 聲明一個(gè)枚舉
  • expect 將一個(gè)聲明標(biāo)記為平臺(tái)相關(guān)喜滨,并期待在平臺(tái)模塊中實(shí)現(xiàn)。
  • external 將一個(gè)聲明標(biāo)記為不是在 Kotlin 中實(shí)現(xiàn)(通過(guò) JNI 訪問(wèn)或者在 JavaScript 中
    實(shí)現(xiàn))
  • final 禁止成員覆蓋
  • infix 允許以中綴表示法調(diào)用函數(shù)
  • inline 告訴編譯器在調(diào)用處內(nèi)聯(lián)傳給它的函數(shù)和 lambda 表達(dá)式
  • inner 允許在嵌套類中引用外部類實(shí)例
  • internal 將一個(gè)聲明標(biāo)記為在當(dāng)前模塊中可見(jiàn)
  • lateinit 允許在構(gòu)造函數(shù)之外初始化非空屬性
  • noinline 關(guān)閉傳給內(nèi)聯(lián)函數(shù)的 lambda 表達(dá)式的內(nèi)聯(lián)
  • open 允許一個(gè)類子類化或覆蓋成員
  • operator 將一個(gè)函數(shù)標(biāo)記為重載一個(gè)操作符或者實(shí)現(xiàn)一個(gè)約定
  • out 將類型參數(shù)標(biāo)記為協(xié)變
  • override 將一個(gè)成員標(biāo)記為超類成員的覆蓋
  • private 將一個(gè)聲明標(biāo)記為在當(dāng)前類或文件中可見(jiàn)
  • protected 將一個(gè)聲明標(biāo)記為在當(dāng)前類及其子類中可見(jiàn)
  • public 將一個(gè)聲明標(biāo)記為在任何地方可見(jiàn)
  • reified 將內(nèi)聯(lián)函數(shù)的類型參數(shù)標(biāo)記為在運(yùn)行時(shí)可訪問(wèn)
  • sealed 聲明一個(gè)密封類(限制子類化的類)
  • suspend 將一個(gè)函數(shù)或 lambda 表達(dá)式標(biāo)記為掛起式(可用做協(xié)程)
  • tailrec 將一個(gè)函數(shù)標(biāo)記為尾遞歸(允許編譯器將遞歸替換為迭代)
  • vararg 允許一個(gè)參數(shù)傳入可變數(shù)量的參數(shù)

特殊標(biāo)示符

以下標(biāo)識(shí)符由編譯器在指定上下文中定義棒口,并且可以用作其他上下文中的常規(guī)標(biāo)識(shí)符:

  • field 用在屬性訪問(wèn)器內(nèi)部來(lái)引用該屬性的幕后字段
  • it 用在 lambda 表達(dá)式內(nèi)部來(lái)隱式引用其參數(shù)

操作符和特殊符號(hào)

Kotlin 支持以下操作符和特殊符號(hào):

  • + 、 - 无牵、 * 剥懒、 / 、 %數(shù)學(xué)操作符
  • * 也用于將數(shù)組傳遞給 vararg 參數(shù)
  • =
    • 賦值操作符
    • 也用于指定參數(shù)的默認(rèn)值
  • += 验游、 -= 充岛、 *= 崔梗、 /= 、 %= 廣義賦值操作符
  • ++ 垒在、 --遞增與遞減操作符
  • && 、 || 场躯、 !邏輯“與”、“或”踢关、“非”操作符(對(duì)于位運(yùn)算,請(qǐng)使用相應(yīng)的中綴函數(shù))
  • == 签舞、 != 相等操作符(對(duì)于非原生類型會(huì)翻譯為調(diào)用 equals() )
  • === 、 !== 引用相等操作符
  • < 儒搭、 > 、 <= 搂鲫、 >= 比較操作符(對(duì)于非原生類型會(huì)翻譯為調(diào)用 compareTo() )
  • [ 、 ] 索引訪問(wèn)操作符(會(huì)翻譯為調(diào)用 get 與 set )
  • !! 斷言一個(gè)表達(dá)式非空(一般別用,盡量別用….請(qǐng)看這里)
  • ?. 執(zhí)行安全調(diào)用(如果接收者非空默穴,就調(diào)用一個(gè)方法或訪問(wèn)一個(gè)屬性)
  • ?: 如果左側(cè)的值為空,就取右側(cè)的值(elvis 操作符)
  • :: 創(chuàng)建一個(gè)成員引用或者一個(gè)類引用
  • .. 創(chuàng)建一個(gè)區(qū)間(比如for里面)
  • : 分隔聲明中的名稱與類型
  • ? 將類型標(biāo)記為可空
  • ->
    • 分隔 lambda 表達(dá)式的參數(shù)與主體
    • 分隔在函數(shù)類型中的參數(shù)類型與返回類型聲明
    • 分隔 when 表達(dá)式分支的條件與代碼體
  • @
    • 引入一個(gè)注解
    • 引入或引用一個(gè)循環(huán)標(biāo)簽
    • 引入或引用一個(gè) lambda 表達(dá)式標(biāo)簽
    • 引用一個(gè)來(lái)自外部作用域的 “this”表達(dá)式
    • 引用一個(gè)外部超類
  • ;分隔位于同一行的多個(gè)語(yǔ)句
  • $ 在字符串模版中引用變量或者表達(dá)式
  • _
    • 在 lambda 表達(dá)式中代替未使用的參數(shù)
    • 在解構(gòu)聲明中代替未使用的參數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蓄诽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子仑氛,更是在濱河造成了極大的恐慌闸英,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甫何,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辙喂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)巍耗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人炬太,你說(shuō)我怎么就攤上這事∏鬃澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵霎迫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我女气,道長(zhǎng),這世上最難降的妖魔是什么测柠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮轰胁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赃阀。我一直安慰自己,他們只是感情好榛斯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著驮俗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪王凑。 梳的紋絲不亂的頭發(fā)上聋丝,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音工碾,去河邊找鬼弱睦。 笑死渊额,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的旬迹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舱权,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼仑嗅!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起仓技,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脖捻,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體地沮,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年摩疑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷袋。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖楷怒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鸠删,我是刑警寧澤抱完,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布乾蛤,位于F島的核電站每界,受9級(jí)特大地震影響家卖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜上荡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酪捡。 院中可真熱鬧叁征,春花似錦逛薇、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呢袱。三九已至官扣,卻和暖如春羞福,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背治专。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留张峰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓挟炬,卻偏偏與公主長(zhǎng)得像鸥滨,于是被迫代替她去往敵國(guó)和親谤祖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355