與 Java 的比較
Kotlin 中解決的一些 Java 問題
Kotlin 修正了 Java 存在的一些問題:
- 空引用由類型系統控制。
- 無原始類型
- Kotlin 中的陣列是不變的
- Kotlin 擁有適當的函數類型,與 Java 的 SAM 轉換不同
- 使用點變異不帶萬用字元
- Kotlin 沒有受檢異常
- 唯讀集合與可變集合的獨立介面
Java 有而 Kotlin 沒有的
- 受檢異常
- 基本類型不是類別。位元組碼在可能的情況下使用基本類型,但它們並非明確可用。
- 靜態成員被伴生物件、頂層函數、擴充函數或@JvmStatic取代。
- 萬用字元類型被宣告點變異和類型投影取代。
- 三元運算子
a ? b : c
被if 表達式取代。 - 記錄
- 模式匹配
- 套件私有可見性修飾符
Kotlin 有而 Java 沒有的
- Lambda 表達式 + 內聯函數 = 高效能的自定義控制結構
- 擴充函數
- 空安全
- 智慧型轉型 (Java 16: 用於 instanceof 的模式匹配)
- 字串模板 (Java 21: 字串模板 (預覽))
- 屬性
- 主建構函式
- 一流委託
- 變數和屬性類型的類型推斷 (Java 10: 局部變數類型推斷)
- 單例
- 宣告點變異與類型投影
- 範圍表達式
- 運算子重載
- 伴生物件
- 資料類別
- 協程
- 頂層函數
- 預設引數
- 具名引數
- 中綴函數
- 預期與實際聲明
- 顯式 API 模式和更好地控制 API 介面
接下來?
了解如何: