Kotlin - 数据类型



Kotlin 数据类型是对数据的分类,它告诉编译器程序员打算如何使用这些数据。例如,Kotlin 数据可以是数字、字符串、布尔值等。

Kotlin 将所有内容都视为对象,这意味着可以在任何变量上调用成员函数和属性。

Kotlin 是一种静态类型语言,这意味着每个表达式的类型都应该在编译时已知。

Kotlin 内置数据类型可以分类如下

  • 数字

  • 字符

  • 字符串

  • 布尔值

  • 数组

(a) Kotlin 数字数据类型

Kotlin 数字数据类型用于定义存储数值的变量,它们分为两组:(a) **整数类型**存储正负整数 (b) **浮点数类型**表示包含一个小数部分的数字,包含一个小数或多个小数。

下表列出了所有 Kotlin 数字数据类型、定义其变量类型的关键字、变量占用的内存大小以及可以存储在这些变量中的值范围。

数据类型 大小(位) 数据范围
Byte 8 位 -128 到 127
Short 16 位 -32768 到 32767
Int 32 位 -2,147,483,648 到 2,147,483,647
Long 64 位 -9,223,372,036,854,775,808 到 +9,223,372,036,854,775,807
Float 32 位 1.40129846432481707e-45 到 3.40282346638528860e+38
Double 64 位 4.94065645841246544e-324 到 1.79769313486231570e+308

如果我们尝试将超过特定数据类型变量允许的值存储在变量中,Kotlin 编译器将报错,因为在运行时会发生溢出。

示例

以下示例显示了如何定义和访问不同的 Kotlin 数字数据类型

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1

   println("Int Value is " + a)
   println("Double  Value is " + d)
   println("Float Value is " + f)
   println("Long Value is " + l )
   println("Short Value is " + s)
   println("Byte Value is " + b)
}

运行上述 Kotlin 程序时,它将生成以下输出

Int Value is 10000
Double  Value is 100.0
Float Value is 100.0
Long Value is 1000000004
Short Value is 10
Byte Value is 1

(b) Kotlin 字符数据类型

Kotlin 字符数据类型用于存储单个字符,它们由类型 **Char** 关键字表示。Char 值必须用单引号括起来,例如 'A' 或 '1'。

示例

以下示例显示了如何定义和访问 Kotlin Char 数据类型

fun main(args: Array<String>) {
   val letter: Char    // defining a Char variable
   letter = 'A'        // Assigning a value to it
   println("$letter")
}

运行上述 Kotlin 程序时,它将生成以下输出

A

Kotlin 支持许多字符的转义序列。当字符前缀为反斜杠 (\) 时,称为转义序列,对编译器具有特殊含义。例如,以下语句中的 \n 是一个有效字符,称为换行符

println('\n') //prints a newline character

println('\$') //prints a dollar $ character

println('\\') //prints a back slash \ character

Kotlin 支持以下转义序列:\t、\b、\n、\r、\'、\"、\\ 和 \$。

(c) Kotlin 字符串数据类型

String 数据类型用于存储一系列字符。字符串值必须用双引号 (" ") 或三引号 (""" """) 括起来。

Kotlin 中有两种字符串——一种称为 **转义字符串**,另一种称为 **原始字符串**。

  • **转义字符串**在双引号 (" ") 中声明,可能包含转义字符,如 '\n'、'\t'、'\b' 等。

  • **原始字符串**在三引号 (""" """) 中声明,可能包含多行文本,无需任何转义字符。

fun main(args: Array<String>) {
   val escapedString : String  = "I am escaped String!\n"
   var rawString :String  = """This is going to be a
   multi-line string and will
   not have any escape sequence""";

   print(escapedString)
   println(rawString)
}

运行上述 Kotlin 程序时,它将生成以下输出

I am escaped String!
This is going to be a
   multi-line string and will
   not have any escape sequence

(d) Kotlin 布尔数据类型

布尔值与其他编程语言一样非常简单。布尔数据类型只有两个值——**true** 或 **false**。

fun main(args: Array<String>) {
   val A: Boolean = true   // defining a variable with true value
   val B: Boolean = false   // defining a variable with false value

   println("Value of variable A "+ A )
   println("Value of variable B "+ B )
}

运行上述 Kotlin 程序时,它将生成以下输出

Value of variable A true
Value of variable B false

布尔值有一个可空对应类型 **Boolean?**,它可以存储 **null** 值,如下所示

val boolNull: Boolean? = null

(e) Kotlin 数组数据类型

Kotlin 数组是同类数据的集合。数组用于在一个变量中存储多个值,而不是为每个值声明单独的变量。

我们将在单独的章节中学习数组,现在让我们来看一个定义整数数组并访问其其中一个元素的示例。

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
   println("Value at 3rd position : " + numbers[2])
}

运行上述 Kotlin 程序时,它将生成以下输出

Value at 3rd position : 3

Kotlin 数据类型转换

类型转换是一个过程,其中一种数据类型的值转换为另一种类型。Kotlin 不支持一种数字数据类型直接转换为另一种类型,例如,无法将 Int 类型转换为 Long 类型

fun main(args: Array<String>) {
   val x: Int = 100
   val y: Long = x  // Not valid assignment

   println(y)
}

运行上述 Kotlin 程序时,它将生成以下输出

main.kt:3:18: error: type mismatch: inferred type is Int but Long was expected
   val y: Long = x  // Not valid assignment

为了将一种数字数据类型转换为另一种类型,Kotlin 提供了一组函数

  • toByte()

  • toShort()

  • toInt()

  • toLong()

  • toFloat()

  • toDouble()

  • toChar()

现在让我们再次重写上面的例子并尝试运行它

fun main(args: Array<String>) {
   val x: Int = 100
   val y: Long = x.toLong()

   println(y)
}

运行上述 Kotlin 程序时,它将生成以下输出

100

测验时间 (面试和考试准备)

Q 1 - Kotlin 布尔变量的值可以为 0 吗?

A - 对

B - 错

答案:D

解释

不,Kotlin 布尔变量只能存储 **true** 或 **false** 值,布尔变量不允许使用整数值。

Q 2 - 使用哪种数据类型定义变量 PI 以存储值 3.14?

A - Float

B - Double

C - Long

D - 以上都不是

答案:B

解释

我们将使用 **Double** 数据类型定义 PI 以存储值 3.14。Float 用于存储像 3.14F 这样的值

Q 3 - Kotlin 字符串的最小长度是多少?

A - 零个字符

B - 1 个字符

C - Null 值

D - 以上都不是

答案:A

解释

我们可以定义一个包含零个字符的空字符串。

Q 4 - 以下哪些是 Kotlin 中用于保存整数的有效数据类型?

A - Byte、Short、Int、Long

B - Byte、Int、Float、Long

C - Short、Int、Long、Boolean

D - 以上都不是

答案:A

解释

这是可以用来定义整数的数据类型集 (Byte、Short、Int、Long)。Float 和 Boolean 不用于定义整数。

答案:D

解释

所有给定的陈述都是关于 Kotlin 数据类型的正确陈述

广告

© . All rights reserved.