一趟据、關(guān)鍵字與操作符
硬關(guān)鍵字
以下符號(hào)會(huì)始終解釋為關(guān)鍵字,不能用作標(biāo)識(shí)符:
-
as
-
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
-
this
-
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
-
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
-
import
將另一個(gè)包中的聲明導(dǎo)入當(dāng)前文件 -
init
開始一個(gè)初始化塊 -
param
用作注解使用處目標(biāo) -
property
用作注解使用處目標(biāo) -
receiver
用作注解使用處目標(biāo) -
set
-
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ù)的默認(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ù)