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
}

+=-=*=/=%= 是复合赋值运算符。要了解更多信息,请参阅复合赋值

总的来说,Kotlin 具有以下基本类型:

类别基本类型示例代码
整数Byte, Short, Int, Longval year: Int = 2020
无符号整数UByte, UShort, UInt, ULongval score: UInt = 100u
浮点数Float, Doubleval currentTemp: Float = 24.5f, val price: Double = 19.99
布尔值Booleanval isEnabled: Boolean = true
字符Charval separator: Char = ','
字符串Stringval message: String = "Hello, world!"

有关基本类型及其属性的更多信息,请参阅类型概览

有了这些知识,你可以声明变量并在稍后对其进行初始化。只要变量在第一次读取之前被初始化,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 = '
'
}