Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南

Kotlin 数据类型

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

示例

kotlin 复制代码
val myNum = 5             // Int
val myDoubleNum = 5.99    // Double
val myLetter = 'D'        // Char
val myBoolean = true      // Boolean
val myText = "Hello"      // String

然而,从上一章中你了解到,如果需要的话,可以指定类型:

示例

kotlin 复制代码
val myNum: Int = 5                // Int
val myDoubleNum: Double = 5.99    // Double
val myLetter: Char = 'D'          // Char
val myBoolean: Boolean = true     // Boolean
val myText: String = "Hello"      // String

有时你必须指定类型,而很多时候则不需要。不管怎样,了解不同类型代表什么是有好处的。

稍后你将了解何时需要指定类型。

数据类型分为不同的组:

  • 数字
  • 字符
  • 布尔值
  • 字符串
  • 数组

数字

数字类型分为两组:

整数类型存储整数,正数或负数(如 123 或 -456),不带小数。有效类型为 Byte、Short、Int 和 Long。

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

如果不为数字变量指定类型,则大多数情况下会返回 Int 用于整数和 Double 用于浮点数。

整数类型

Byte

Byte 数据类型可以存储从 -128 到 127 的整数。这可以在你确定值在 -128 到 127 范围内时替代 Int 或其他整数类型以节省内存:

示例

kotlin 复制代码
val myNum: Byte = 100
println(myNum)

Short

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

示例

kotlin 复制代码
val myNum: Short = 5000
println(myNum)

Int

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

示例

kotlin 复制代码
val myNum: Int = 100000
println(myNum)

Long

Long 数据类型可以存储从 -9223372036854775807 到 9223372036854775807 的整数。当 Int 不足以存储值时使用。可选地,你可以在值后加 "L":

示例

kotlin 复制代码
val myNum: Long = 15000000000L
println(myNum)

Int 和 Long 的区别

只要一个整数不超过 2147483647 就是 Int。如果超出这个范围,则定义为 Long:

示例

kotlin 复制代码
val myNum1 = 2147483647  // Int
val myNum2 = 2147483648  // Long

浮点类型

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

Float 和 Double 数据类型可以存储小数:

Float 示例

kotlin 复制代码
val myNum: Float = 5.75F
println(myNum)

Double 示例

kotlin 复制代码
val myNum: Double = 19.99
println(myNum)

使用 Float 还是 Double?

浮点值的精度表示小数点后的位数。Float 的精度只有六到七位小数,而 Double 变量的精度大约为 15 位。因此,大多数计算使用 Double 更安全。

还要注意,Float 类型的值应以 "F" 结尾。

科学计数法

浮点数也可以是科学计数法的形式,用 "e" 或 "E" 表示 10 的幂:

示例

kotlin 复制代码
val myNum1: Float = 35E3F
val myNum2: Double = 12E4
println(myNum1)
println(myNum2)

布尔值

布尔数据类型只能取值 true 或 false:

示例

kotlin 复制代码
val isKotlinFun: Boolean = true
val isFishTasty: Boolean = false
println(isKotlinFun)   // 输出 true
println(isFishTasty)   // 输出 false

布尔值主要用于条件测试,你将在后续章节中学习更多。

字符

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

示例

kotlin 复制代码
val myGrade: Char = 'B'
println(myGrade)

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

示例

kotlin 复制代码
val myLetter: Char = 66
println(myLetter) // 错误

字符串

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

示例

kotlin 复制代码
val myText: String = "Hello World"
println(myText)

你将在字符串章节中学习更多关于字符串的内容。

数组

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

你将在数组章节中学习更多关于数组的内容。

类型转换

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

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

示例

kotlin 复制代码
val x: Int = 5
val y: Long = x
println(y) // 错误:类型不匹配

要将一种数字数据类型转换为另一种类型,必须使用以下函数之一:toByte()、toShort()、toInt()、toLong()、toFloat()、toDouble() 或 toChar():

示例

kotlin 复制代码
val x: Int = 5
val y: Long = x.toLong()
println(y)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关推荐
冬奇Lab1 天前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
demo007x1 天前
Docling 文档转换以及技术架构分析
前端·后端·程序员
保持当下1 天前
分享一些程序员很棘手但是却又简单的工具
程序员·免费·js·工具
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
下班走回家1 天前
DeepSeek 开源模型的突破与思考:从技术到生态的全面进化
人工智能·开源
不会C语言的男孩1 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
ApacheSeaTunnel1 天前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步