原文鏈接 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ù)