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

news/2024/9/24 18:06:35

Kotlin 数据类型

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

示例

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

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

示例

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 或其他整数类型以节省内存:

示例

val myNum: Byte = 100
println(myNum)

Short

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

示例

val myNum: Short = 5000
println(myNum)

Int

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

示例

val myNum: Int = 100000
println(myNum)

Long

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

示例

val myNum: Long = 15000000000L
println(myNum)

Int 和 Long 的区别

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

示例

val myNum1 = 2147483647  // Int
val myNum2 = 2147483648  // Long

浮点类型

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

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

Float 示例

val myNum: Float = 5.75F
println(myNum)

Double 示例

val myNum: Double = 19.99
println(myNum)

使用 Float 还是 Double?

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

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

科学计数法

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

示例

val myNum1: Float = 35E3F
val myNum2: Double = 12E4
println(myNum1)
println(myNum2)

布尔值

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

示例

val isKotlinFun: Boolean = true
val isFishTasty: Boolean = false
println(isKotlinFun)   // 输出 true
println(isFishTasty)   // 输出 false

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

字符

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

示例

val myGrade: Char = 'B'
println(myGrade)

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

示例

val myLetter: Char = 66
println(myLetter) // 错误

字符串

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

示例

val myText: String = "Hello World"
println(myText)

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

数组

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

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

类型转换

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

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

示例

val x: Int = 5
val y: Long = x
println(y) // 错误:类型不匹配

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

示例

val x: Int = 5
val y: Long = x.toLong()
println(y)

最后

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46229.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Exercises

### Auto自动化变量自动存储类别是默认的存储类别,通常用于在”函数内部定义的局部变量“。这些变量会在程序执行到其定义的代码块时对应的栈空间被创建,函数执行完毕后变量对应栈空间会自动销毁。 示例: int main() //宿主 {auto int data;//寄生虫 auto int data; 局部变量…

vxlan基本原理及裸搭过程

https://mp.weixin.qq.com/s/pqVvBd2CbHkWwD79aDb6mg剥离flannel或者其他overlay网络的上层封装,我们可以通过 ip命令纯手工搭建一个vxlan overlay网络, 这其中最关键的部分是:vethpair: 打通容器内外 vxlan.nic: 虚拟网卡,封装/解封数据包除了创建这些硬件,我们还需要设置…

c语言程序实验————实验报告十二

c语言程序实验————实验报告十二实验项目名称: 实验报告十二 用指针处理函数与数组 实验项目类型:验证性 实验日期:2024 年 5 月 30 日一、实验目的 1.掌握指针变量的定义格式,会定义和使用指针变量 2.能正确建立指针变量与数组(包括一维、两维和字符串数组)的联系,并…

6.21-二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 题意描述:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己…

Python标注工具labelImg使用Pyinstaller打包成EXE的过程及问题处理

直接上过程 1.在python项目中使用pip命令安装pyinstaller。 2.在python编辑器(如Pycharm)终端切换到要打包的.py文件所在目录。 3.使用pyinstaller工具命令打包.py文件,如: pyinstaller labelImg.py --noconsole --workpath .\Pyinstaller\temp --distpath .\Pyinstaller\…

网易云音乐榜单爬取

打开网易云音乐,进入飙升榜进入到开发者工具页面,搜索列表页歌曲名称,查看请求地址模拟浏览器发出请求,查看响应内容import requestsurl = https://music.163.com/discover/toplist?id=19723756headers = {User-Agent:ozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebK…

AWX部署

目录awx1. 部署awx1.1 克隆仓库1.2 生成yaml1.3 部署operator1.4 查看pod1.5 修改镜像地址2. 登录awx2.1 查看端口2.2 查看默认密码 awx awx是红帽Ansible Tower的开源版本,他的功能是可以使用web界面来操作ansible 操作系统使用openEuler 22.03 这里是在k8s上部署的,需要使用…

开源表单设计器好不好用?优点怎么样?

开源表单设计器的优势表现在哪?一起来看看。要想实现提质增效,让数据资源更好地利用起来,助力企业增产创收,那就需要采用更理想的办公利器。低代码技术平台是近些年流行于各职场办公中的重要软件平台,更灵活、性能更高、更靠谱、优势特点也非常多,在推动企业实现数字化转…