Skip to content

基本型別

Kotlin 中的每個變數與資料結構都有一個型別。型別非常重要,因為它們會告訴編譯器你被允許對該變數或資料結構執行哪些操作。換句話說,即它具有哪些函式與屬性。

在上一章的範例中,Kotlin 能夠判斷出 customers 的型別為 Int。 Kotlin 推論型別的能力被稱為型別推論customers 被指派了一個整數值。由此,Kotlin 推論出 customers 具有數值型別 Int。因此,編譯器知道你可以對 customers 執行算術運算:

kotlin
fun main() {
    var customers = 10

    // 有些顧客離開了隊列
    customers = 8

    customers = customers + 3 // 加法範例:11
    customers += 7            // 加法範例:18
    customers -= 3            // 減法範例:15
    customers *= 2            // 乘法範例:30
    customers /= 3            // 除法範例:10

    println(customers) // 10
}

+=-=*=/=%= 是複合指派運算子。若要了解更多資訊,請參閱 Augmented assignments

總體而言,Kotlin 具有以下基本型別:

類別基本型別範例程式碼
整數 (Integers)Byte, Short, Int, Longval year: Int = 2020
無符號整數 (Unsigned integers)UByte, UShort, UInt, ULongval score: UInt = 100u
浮點數 (Floating-point numbers)Float, Doubleval currentTemp: Float = 24.5f, val price: Double = 19.99
布林值 (Booleans)Booleanval isEnabled: Boolean = true
字元 (Characters)Charval separator: Char = ','
字串 (Strings)Stringval message: String = "Hello, world!"

有關基本型別及其屬性的更多資訊,請參閱 Types overview

掌握了這些知識,你就可以宣告變數並在稍後進行初始化。只要變數在第一次讀取前完成初始化,Kotlin 就能處理這種情況。

要宣告一個變數而不初始化它,請使用 : 指定其型別。例如:

kotlin
fun main() {
    // 宣告變數但未初始化
    val d: Int
    // 變數已初始化
    d = 3

    // 變數已明確指定型別並初始化
    val e: String = "hello"

    // 變數可以被讀取,因為它們已經完成初始化
    println(d) // 3
    println(e) // hello
}

如果你在讀取變數之前未對其進行初始化,你將會看到錯誤:

kotlin
fun main() {
    // 宣告變數但未初始化
    val d: Int
    
    // 觸發錯誤
    println(d)
    // 變數 'd' 必須被初始化
}

現在你已經知道如何宣告基本型別,接著該來學習集合了。

練習

練習題

為每個變數明確宣告正確的型別:

kotlin
fun main() {
    val a: Int = 1000 
    val b = "log message"
    val c = 3.14
    val d = 100_000_000_000_000
    val e = false
    val f = '
'
}
範例解答
kotlin
fun main() {
    val a: Int = 1000
    val b: String = "log message"
    val c: Double = 3.14
    val d: Long = 100_000_000_000_000
    val e: Boolean = false
    val f: Char = '
'
}