基本类型
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, Long | val year: Int = 2020 |
| 无符号整数 | UByte, UShort, UInt, ULong | val score: UInt = 100u |
| 浮点数 | Float, Double | val currentTemp: Float = 24.5f, val price: Double = 19.99 |
| 布尔值 | Boolean | val isEnabled: Boolean = true |
| 字符 | Char | val separator: Char = ',' |
| 字符串 | String | val 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 = '
'
}