Kotlin 数据类型

Kotlin 数据类型

在 Kotlin 中,变量的 类型 由其值决定:

实例
  1. fun main() {
  2. val myNum = 5 // Int
  3. val myDoubleNum = 5.99 // Double
  4. val myLetter = 'D' // Char
  5. val myBoolean = true // Boolean
  6. val myText = "Hello" // String
  7. println(myNum)
  8. println(myDoubleNum)
  9. println(myLetter)
  10. println(myBoolean)
  11. println(myText)
  12. }

但是,您从上一章中了解到,如果需要,可以指定类型:

实例
  1. fun main() {
  2. val myNum: Int = 5 // Int
  3. val myDoubleNum: Double = 5.99 // Double
  4. val myLetter: Char = 'D' // Char
  5. val myBoolean: Boolean = true // Boolean
  6. val myText: String = "Hello" // String
  7. println(myNum)
  8. println(myDoubleNum)
  9. println(myLetter)
  10. println(myBoolean)
  11. println(myText)
  12. }

有时必须指定类型,但通常不指定。无论如何,知道不同类型代表什么总是好的。

稍后,您将了解有关 何时 需要指定类型的更多知识。

数据类型分为不同的组:

  • Numbers
  • Characters
  • Booleans
  • Strings
  • Arrays

Numbers

数字类型分为两组:

整数类型存储整数,正数或负数(如 123 或 -456),不带小数。有效类型有 ByteShortIntLong

浮点类型表示带有小数部分的数字,包含一个或多个小数。有两种类型:FloatDouble

如果不指定数值变量的类型,则对于整数,它通常以 Int 返回,对于浮点数,它通常以 Double 返回。

整型

Byte

Byte 字节数据类型可以存储从 -128 到 127 的整数。当您确定该值将在 -128 和 127 之间时,可以使用它代替 Int 或其他整数类型来节省内存:

实例
  1. fun main() {
  2. val myNum: Byte = 100
  3. println(myNum)
  4. }
Short

Short 短整型数据类型可以存储从 -32768 到 32767 的整数:

实例
  1. fun main() {
  2. val myNum: Short = 5000
  3. println(myNum)
  4. }
Int

Int 整型数据类型可以存储从 -2147483648 到 2147483647 的整数:

实例
  1. fun main() {
  2. val myNum: Int = 100000
  3. println(myNum)
  4. }
Long

Long 长整型数据类型可以存储从 -9223372036854775808 到 9223372036854775808 的整数。当 Int 不足以存储值时,使用此选项。也可以选择以 "L" 结束该值:

实例
  1. fun main() {
  2. val myNum: Long = 15000000000L
  3. println(myNum)
  4. }

Int 和 Long 之间的区别

一个整数是一个 Int,只要它最大是 2147483647。如果超出这个范围,它被定义为 Long:

实例
  1. val myNum1 = 2147483647 // Int
  2. val myNum2 = 2147483648 // Long

浮点型

浮点类型表示带小数的数字,例如 9.99 或 3.14515。

Float

Float 数据类型可以存储 3.4e−038 至 3.4e+038 中的小数。请注意,该值应以 "F" 结尾:

实例
  1. fun main() {
  2. val myNum: Float = 5.75F
  3. println(myNum)
  4. }
Double

Double 数据类型可以存储 1.7e−308 至 1.7e+038 中的小数:

实例
  1. fun main() {
  2. val myNum: Double = 19.99
  3. println(myNum)
  4. }

使用 Float 还是 Double?

浮点值的 精度 表示该值在小数点后可以有多少位数。Float 的精度只有 6 或 7 位小数,而 Double 的精度约为 15 位。因此,在大多数计算中使用 Double 更安全。
科学数字

浮点数也可以是带有 "e" 或 "E" 的科学数字,表示 10 的幂:

实例
  1. fun main() {
  2. val myNum1: Float = 35E3F
  3. val myNum2: Double = 12E4
  4. println(myNum1)
  5. println(myNum2)
  6. }

Booleans

Boolean 布尔数据类型值只能是 truefalse:

实例
  1. fun main() {
  2. val isKotlinFun: Boolean = true
  3. val isFishTasty: Boolean = false
  4. println(isKotlinFun) // Outputs true
  5. println(isFishTasty) // Outputs false
  6. }

布尔值主要用于条件测试,您将在后面的章节中了解更多相关知识。


Characters

Char 数据类型用于存储 个字符。char 值必须用 单引号 括起来,如 'A' 或 'c':

实例
  1. fun main() {
  2. val myGrade: Char = 'B'
  3. println(myGrade)
  4. }

与 Java 不同,您不能使用 ASCII 值来显示某些字符。值 66 在Java中会输出一个 "B",但在 Kotlin 中会生成错误:

实例
  1. val myLetter: Char = 66
  2. println(myLetter) // Error

Strings

String 字符串数据类型用于存储字符序列(文本)。字符串值必须用 双引号 括起来:

实例
  1. fun main() {
  2. val myText: String = "Hello World"
  3. System.out.println(myText)
  4. }

您可以在 Kotlin Strings 章节学习到更多 String 的知识。


Arrays

数组用于在单个变量中存储多个值,而不是为每个值声明单独的变量。

您可以在 Kotlin Arrays 章节学习到更多 Arrays 的知识。


Type Conversion

类型转换是指将一种数据类型的值转换为另一种类型。

在 Kotlin 中,数字类型转换不同于 Java。例如,无法使用以下代码将 Int 类型转换为 Long 类型:

实例
  1. fun main() {
  2. val x: Int = 5
  3. val y: Long = x
  4. println(y)
  5. }

要将数字数据类型转换为其他类型,必须使用以下函数之一:

  • toByte()
  • toShort()
  • toInt()
  • toLong()
  • toFloat()
  • toDouble()
  • toChar()
实例
  1. fun main() {
  2. val x: Int = 5
  3. val y: Long = x.toLong()
  4. println(y)
  5. }