- Kotlin 教程
- Kotlin - 首页
- Kotlin - 概述
- Kotlin - 环境设置
- Kotlin - 架构
- Kotlin - 基本语法
- Kotlin - 注释
- Kotlin - 关键字
- Kotlin - 变量
- Kotlin - 数据类型
- Kotlin - 运算符
- Kotlin - 布尔值
- Kotlin - 字符串
- Kotlin - 数组
- Kotlin - 范围
- Kotlin - 函数
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...Else 表达式
- Kotlin - When 表达式
- Kotlin - For 循环
- Kotlin - While 循环
- Kotlin - Break 和 Continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 映射
- Kotlin 对象和类
- Kotlin - 类和对象
- Kotlin - 构造函数
- Kotlin - 继承
- Kotlin - 抽象类
- Kotlin - 接口
- Kotlin - 可见性控制
- Kotlin - 扩展
- Kotlin - 数据类
- Kotlin - 密封类
- Kotlin - 泛型
- Kotlin - 委托
- Kotlin - 解构声明
- Kotlin - 异常处理
- Kotlin 有用资源
- Kotlin - 快速指南
- Kotlin - 有用资源
- Kotlin - 讨论
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
测验时间 (面试和考试准备)
答案:D
解释
不,Kotlin 布尔变量只能存储 **true** 或 **false** 值,布尔变量不允许使用整数值。
答案:B
解释
我们将使用 **Double** 数据类型定义 PI 以存储值 3.14。Float 用于存储像 3.14F 这样的值
Q 4 - 以下哪些是 Kotlin 中用于保存整数的有效数据类型?
答案:A
解释
这是可以用来定义整数的数据类型集 (Byte、Short、Int、Long)。Float 和 Boolean 不用于定义整数。
Q 5 - 关于 Kotlin 数据类型,以下哪个陈述是正确的?
B - 要将一种数字数据类型转换为另一种类型,必须使用提供的辅助函数。
答案:D
解释
所有给定的陈述都是关于 Kotlin 数据类型的正确陈述