Kotlin 基本資料型態
在 Kotlin 中,所有東西都是物件。
這意味著我們可以在任何變數上呼叫成員函式和屬性。
雖然在程式碼層面看起來都是物件,但在執行時期 ( Runtime),Kotlin 編譯器會自動優化,將 Int 等基本型別轉成 Java 的 Primitive Type (int) 以提升效能。
比較運算 (== vs ===)
這是在 Kotlin 中非常重要的觀念!
==:比較 數值/內容 是否相等 (Structural Equality),等同於 Java 的.equals()。===:比較 記憶體位址 是否相等 (Referential Equality),等同於 Java 的==。
val a = 100
val b = 100
println(a == b) // true
println(a === b) // true (因為 Int 會被優化為 primitive int)
數字 (Numbers)
Kotlin 提供了以下幾種數字型別:
| 型別 | 位元數 | 範例 |
|---|---|---|
Double | 64 | 3.14 |
Float | 32 | 3.14F (結尾加 F) |
Long | 64 | 100L (結尾加 L) |
Int | 32 | 100 |
Short | 16 | - |
Short | 16 | - |
Byte | 8 | - |
此外,Kotlin 也支援 Unsigned Types (無號整數):UByte, UShort, UInt, ULong。
例如:val u: UInt = 100u。
注意:Kotlin 不會自動進行隱式轉型 (Implicit Conversion)。
你不能把 Int 直接塞給 Long,必須顯式轉型。
val a: Int = 100
// val b: Long = a // 錯誤!
val b: Long = a.toLong() // 正確
布林值 (Booleans)
只有兩個值:true 和 false。
支援邏輯運算子:&& (AND), || (OR), ! (NOT)。
val isAdmin = true
val isGuest = false
字元 (Characters)
用單引號 ' 包起來的單一文字。
注意:Char 不是數字 (在 C / Java 中 Char 其實是 ASCII 數字,但在 Kotlin 中不是)。
val letter: Char = 'A'
// val i: Int = letter // 錯誤!不能直接當數字用