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

硬關(guān)鍵字

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

as

????用于類型轉(zhuǎn)換

????為導(dǎo)入指定一個(gè)別名

as? 用于安全類型轉(zhuǎn)換

break 終止循環(huán)的執(zhí)行

class 聲明一個(gè)類

continue 繼續(xù)最近層循環(huán)的下一步

do 開始一個(gè) do/while 循環(huán)(后置條件的循環(huán))

else 定義一個(gè) if 表達(dá)式條件為 false 時(shí)執(zhí)行的分支

false 指定布爾類型的“假”值

for 開始一個(gè) for 循環(huán)

fun 聲明一個(gè)函數(shù)

if 開始一個(gè) if 表達(dá)式

in

????指定在 for 循環(huán)中迭代的對(duì)象

????用作中綴操作符以檢測(cè)一個(gè)值屬于一個(gè)區(qū)間、 一個(gè)集合或者其他定義“contains”方法的實(shí)體

????在 when 表達(dá)式中用于上述目的

????將一個(gè)類型參數(shù)標(biāo)記為逆變

!in

????用作中綴操作符以檢測(cè)一個(gè)值不屬于一個(gè)區(qū)間、 一個(gè)集合或者其他定義“contains”方法的實(shí)體

????在 when 表達(dá)式中用于上述目的

interface 聲明一個(gè)接口

is

????檢測(cè)一個(gè)值具有指定類型

????在 when 表達(dá)式中用于上述目的

!is

????檢測(cè)一個(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 開始一個(gè)異常處理塊

typealias 聲明一個(gè)類型別名

typeof 保留以供未來使用

val 聲明一個(gè)只讀屬性或局部變量

var 聲明一個(gè)可變屬性或局部變量

when 開始一個(gè) when 表達(dá)式(執(zhí)行其中一個(gè)給定分支)

while 開始一個(gè) while 循環(huán)(前置條件的循環(huán))

軟關(guān)鍵字

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

by

????將接口的實(shí)現(xiàn)委托給另一個(gè)對(duì)象

????將屬性訪問器的實(shí)現(xiàn)委托給另一個(gè)對(duì)象

catch 開始一個(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 開始一個(gè)當(dāng) try 塊退出時(shí)總會(huì)執(zhí)行的塊

get

????聲明屬性的 getter

????用作注解使用處目標(biāo)

import 將另一個(gè)包中的聲明導(dǎo)入當(dāng)前文件

init 開始一個(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)(通過 JNI 訪問或者在 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)前模塊中可見

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)前類或文件中可見

protected 將一個(gè)聲明標(biāo)記為在當(dāng)前類及其子類中可見

public 將一個(gè)聲明標(biāo)記為在任何地方可見

reified 將內(nèi)聯(lián)函數(shù)的類型參數(shù)標(biāo)記為在運(yùn)行時(shí)可訪問

sealed 聲明一個(gè)密封類(限制子類化的類)

suspend 將一個(gè)函數(shù)或 lambda 表達(dá)式標(biāo)記為掛起式(可用做協(xié)程)

tailrec 將一個(gè)函數(shù)標(biāo)記為尾遞歸(允許編譯器將遞歸替換為迭代)

vararg 允許一個(gè)參數(shù)傳入可變數(shù)量的參數(shù)

特殊標(biāo)識(shí)符

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

????field 用在屬性訪問器內(nèi)部來引用該屬性的幕后字段

????it 用在 lambda 表達(dá)式內(nè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() )

[ 、 ] —— 索引訪問操作符(會(huì)翻譯為調(diào)用 get 與 set )

!! 斷言一個(gè)表達(dá)式非空

?. 執(zhí)行安全調(diào)用(如果接收者非空,就調(diào)用一個(gè)方法或訪問一個(gè)屬性)

?: 如果左側(cè)的值為空,就取右側(cè)的值(elvis 操作符)

:: 創(chuàng)建一個(gè)成員引用或者一個(gè)類引用

.. 創(chuàng)建一個(gè)區(qū)間

: 分隔聲明中的名稱與類型

? 將類型標(biāo)記為可空

->

????分隔 lambda 表達(dá)式的參數(shù)與主體

????分隔在函數(shù)類型中的參數(shù)類型與返回類型聲明

????分隔 when 表達(dá)式分支的條件與代碼體

@

????引入一個(gè)注解

????引入或引用一個(gè)循環(huán)標(biāo)簽

????引入或引用一個(gè) lambda 表達(dá)式標(biāo)簽

????引用一個(gè)來自外部作用域的 “this”表達(dá)式

????引用一個(gè)外部超類

; 分隔位于同一行的多個(gè)語句

$ 在字符串模版中引用變量或者表達(dá)式

_

????在 lambda 表達(dá)式中代替未使用的參數(shù)

????在解構(gòu)聲明中代替未使用的參數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容