Kotlin中的關(guān)鍵字可分為三類
1尤揣、硬關(guān)鍵字:這些關(guān)鍵字無論在什么時(shí)候都不能用作標(biāo)識(shí)符
2搔啊、軟關(guān)鍵字:這些關(guān)鍵字在他們不起作用的上下文中用作標(biāo)識(shí)符
3、修飾符關(guān)鍵字:這些關(guān)鍵字可以在在代碼中用作修飾符北戏。
Kotlin硬關(guān)鍵字如下:
?as--用于做類型轉(zhuǎn)換或者為import語句指定別名
?as?--類型安全的類型轉(zhuǎn)換運(yùn)算符
?break--中斷循環(huán)
?class--聲明類
?continue--忽略本次循環(huán)剩下的語句负芋,重新開始下一次循環(huán)
?do--用于 do while循環(huán)
?else--在if分支中使用
?false--在Boolean類型中表示假的值
?for--用于for循環(huán)
?fun--聲明函數(shù)
?if--在if分支中使用
?in--在for循環(huán)中使用;in還可作為雙目運(yùn)算符嗜愈,檢查一個(gè)值是否處于區(qū)間或集合內(nèi)旧蛾;in也可在when表達(dá)式中使用;in還可用于修飾泛型參數(shù)蠕嫁,表明該泛型參數(shù)支持逆變
?!in--可作為雙目運(yùn)算in的反義詞锨天;!in也可在when表達(dá)式中使用
?is--用于作類型檢查(類似于java的intanceof)或在when表達(dá)式使用
?!is--用于作類型檢查(is的反義詞)或在when表達(dá)式使用
?null--代表空的直接變量
?object--用戶聲明對(duì)象表達(dá)式或定義命名對(duì)象
?package--用于當(dāng)前文件指定包
?return--聲明函數(shù)的返回
?super--用于引用父類實(shí)現(xiàn)的方法和屬性,或者在子類構(gòu)造器中調(diào)用父類構(gòu)造器
?this--代表當(dāng)前類的對(duì)象在構(gòu)造器中調(diào)用當(dāng)前類的其他類的構(gòu)造器
?throw--用于拋出異常
?true--在Boolean類型中表示真的直接量
?try--開始異常出來
?typealias--用于定義類型別名
?val--聲明只讀屬性或變量
?var--聲明可變屬性和變量
?when--用于when表達(dá)式
?while--用于while循環(huán)或do while循環(huán)
Kotlin軟關(guān)鍵字如下:
?by--用于將接口或祖先類的實(shí)現(xiàn)代理給其他對(duì)象
?catch--在異常處理中用于捕捉異常
?constructor--用于聲明構(gòu)造器
?delegate--用于指定該注解修飾委托屬性存儲(chǔ)其他委托實(shí)例的字段
?dynamic--主要用于在Kotlin/JavaScript中引用一個(gè)動(dòng)態(tài)類型
?field--用于指定該注解修飾屬性的幕后字段
?file--用于指定該注解修飾該源文件本身
?finally--異常處理中的finally塊
?get--用于聲明屬性的getter方法或者用于指定該注解修飾屬性的getter方法
?import--用于導(dǎo)包
?init--用于聲明初始化塊
?param--用于指定該注解修飾構(gòu)造器參數(shù)
?property--用于指定該注解修飾整個(gè)屬性(這種目標(biāo)的注解對(duì)Java不可見剃毒,因?yàn)镴ava并沒有正真的屬性)
?receiveris--用于指定該注解修飾擴(kuò)展方法或擴(kuò)展屬性的接受者
?set--用于聲明屬性setter方法病袄,或者用于指定該注解修飾屬性的setter方法
?setparam--用于指定該注解修飾setter方法的參數(shù)
?where--用于為泛型參數(shù)增加限制
Kotlin修飾符關(guān)鍵字如下:
?abstract--用于修飾抽象類或抽象成員
?annotation--用于修飾一個(gè)注解類
?companion--用于聲明一個(gè)伴生對(duì)象、
?const--用于聲明編譯時(shí)常量
?crossinline--用于禁止在傳給內(nèi)聯(lián)函數(shù)的Lambda表達(dá)式中執(zhí)行非局部返回
?data--用于聲明數(shù)據(jù)類
?enum--用于聲明枚舉
?external--用于聲明某個(gè)方法不由Kotlin方法(與Java的Native相似)
?final--用于禁止被重寫
?infix--聲明函數(shù)能以雙目運(yùn)算的格式執(zhí)行
?inline--用于聲明內(nèi)聯(lián)函數(shù)赘阀,Lambda表達(dá)式在內(nèi)聯(lián)函數(shù)中執(zhí)行局部返回
?internal--用于表示被修飾的聲明之能在當(dāng)前模塊內(nèi)看見
?lateinit--用于修飾一個(gè)non-null屬性益缠,用于指定該屬性可在構(gòu)造器以外的地方完成初始化
?noinline--用于禁止內(nèi)聯(lián)函數(shù)中個(gè)別Lambda表達(dá)式被內(nèi)聯(lián)化。
?open--用于修飾類基公,表示該類可派生子類幅慌;或者用于修飾成員,表示該成員可以被重寫轰豆。
?out--用于修飾泛型參數(shù)胰伍,表明該泛型參數(shù)支持協(xié)變齿诞。
?override--用于聲明重寫父類的成員
?private--private訪問權(quán)限
?protected--protected訪問權(quán)限
?public--public訪問權(quán)限
?reified--用于修飾內(nèi)聯(lián)函數(shù)中的泛型形參,接下來在函數(shù)中就可像使用普通類型一樣使用該類型參數(shù)骂租。
?sealed--用于聲明一個(gè)密封類
?suspend--用于標(biāo)識(shí)一個(gè)函數(shù)后Lambda表達(dá)式可作為暫停
?tailrec--用于修飾一個(gè)函數(shù)可作為尾隨遞歸函數(shù)的使用
?vararg--用于修飾形參掌挚,表明該參數(shù)是個(gè)數(shù)可變的形參。