Kotlin關鍵字與操作符

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

Kotlin關鍵字與操作符

硬關鍵字

以下符號會始終解釋為關鍵字,不能用作標識符:

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

軟關鍵字

以下符號在適用的上下文中充當關鍵字,而在其他上下文中可用作標識符:

  • by
    • 將接口的實現委托給另一個對象
    • 將屬性訪問器的實現委托給另一個對象
  • catch開始一個處理指定異常類型的塊
  • constructor 聲明一個主構造函數或次構造函數
  • delegate 用作注解使用處目標
  • dynamic 引用一個 Kotlin/JS 代碼中的動態類型
  • field 用作注解使用處目標
  • file 用作注解使用處目標
  • finally 開始一個當 try 塊退出時總會執行的塊
  • get
    • 聲明屬性的 getter
    • 用作注解使用處目標
  • import 將另一個包中的聲明導入當前文件
  • init 開始一個初始化塊
  • param 用作注解使用處目標
  • property 用作注解使用處目標
  • receiver 用作注解使用處目標
  • set
    • 聲明屬性的 setter
    • 用作注解使用處目標
  • setparam 用作注解使用處目標
  • where 指定泛型類型參數的約束

修飾符關鍵字

以下符號作為聲明中修飾符列表中的關鍵字,并可用作其他上下文中的標識符:

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

特殊標示符

以下標識符由編譯器在指定上下文中定義,并且可以用作其他上下文中的常規標識符:

  • field 用在屬性訪問器內部來引用該屬性的幕后字段
  • it 用在 lambda 表達式內部來隱式引用其參數

操作符和特殊符號

Kotlin 支持以下操作符和特殊符號:

  • + 、 - 、 * 、 / 、 %數學操作符
  • * 也用于將數組傳遞給 vararg 參數
  • =
    • 賦值操作符
    • 也用于指定參數的默認值
  • += 、 -= 、 *= 、 /= 、 %= 廣義賦值操作符
  • ++ 、 --遞增與遞減操作符
  • && 、 || 、 !邏輯“與”、“或”、“非”操作符(對于位運算,請使用相應的中綴函數)
  • == 、 != 相等操作符(對于非原生類型會翻譯為調用 equals() )
  • === 、 !== 引用相等操作符
  • < 、 > 、 <= 、 >= 比較操作符(對于非原生類型會翻譯為調用 compareTo() )
  • [ 、 ] 索引訪問操作符(會翻譯為調用 get 與 set )
  • !! 斷言一個表達式非空(一般別用,盡量別用….請看這里)
  • ?. 執行安全調用(如果接收者非空,就調用一個方法或訪問一個屬性)
  • ?: 如果左側的值為空,就取右側的值(elvis 操作符)
  • :: 創建一個成員引用或者一個類引用
  • .. 創建一個區間(比如for里面)
  • : 分隔聲明中的名稱與類型
  • ? 將類型標記為可空
  • ->
    • 分隔 lambda 表達式的參數與主體
    • 分隔在函數類型中的參數類型與返回類型聲明
    • 分隔 when 表達式分支的條件與代碼體
  • @
    • 引入一個注解
    • 引入或引用一個循環標簽
    • 引入或引用一個 lambda 表達式標簽
    • 引用一個來自外部作用域的 “this”表達式
    • 引用一個外部超類
  • ;分隔位于同一行的多個語句
  • $ 在字符串模版中引用變量或者表達式
  • _
    • 在 lambda 表達式中代替未使用的參數
    • 在解構聲明中代替未使用的參數
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。