网站首页 > 基础教程 正文
变量的数据类型
任何编程语言都有自己的数据类型,例如,,Java编程语言中的数据类型包含基本数据类型和引用数据类型,其中基本数据类型包含数值型、字符型、布尔型,引用数据类型包括类、接口、数组、枚举、注解。而Kotlin语言中的数据类型不区分基本数据类型和引用数据类型,分为数值型、字符型、布尔型、数组型、字符串型。
数值类型
Kotlin中的数值类型与Java中数值类型相似,包括Byte(字节)、Short(短整型)、Int(整型)、Long(长整型)、Float(浮点型)、Double(双精度浮点型),只不过在Java中这些数值类型用小写字母表示,而在Kotlin中用首字母大写的形式表示。Kotlin中数值类型变量所占存储空间的大小以及存储值的范围如表所示:
类型名 | 描述 | 占用空间 | 存储值范围 | 示例 |
Byte | 字节 | 8位(1个字节) | -2^7 ~ (2^7 - 1) | var a : Byte = 1 |
Short | 短整型 | 16位(2个字节) | -2^15 ~ (2^15 - 1) | var b : Short = 1 |
Int | 整型 | 32位(4个字节) | -2^31 ~ (2^31 -1) | var c : Int = 1 |
Long | 长整型 | 64位(8个字节) | -2^63 ~ (2^63 -1) | var d : Long = 1L |
Float | 浮点型 | 32位(4个字节) | 1.4E-45 ~ 3.4E + 38,-3.4E + 38 ~ -1.4E-45 | var e : Float = 1f |
Double | 双精度浮点型 | 64位(8个字节) | 4.9E-324 ~ 1.7E+308,-1.7E+308 ~ -4.9E-324 | var f : Double = 1.0 |
表中,占用空间指的是不同类型的变量占用内存的大小。例如一个Byte类型的变量会占用1个字节大小的内存空间,存储的值只能是-2^7 ~ (2^7 - 1)的整数,一个Int类型的变量会占用4个字节大小的内存空间,存储值范围是-2^31 ~ (2^31 -1)的整数。需要注意的是,在为Long类型的变量赋值时,所有赋值的后面要加上一个字母L(只能是大写字母L),说明赋值为Long类型。如果赋的值未超出Int的取值范围,则可以省略字母L。
Float与Double类型主要用于存储带小数的数值,在这两个类型的存储值范围中,E表示以10为底的指数,E后面的“+”和“-”代表正指数和负指数,例如 1.4E-45表示1.4*10^-45。在Kotlin中,一个Float类型的变量赋值时需要在值得后面加上字母F(或小写的f),Double类型的变量在赋值时,值的后面不允许加D或者d,这点与Java不同。
布尔类型
布尔类型变量用于存储布尔值,在Kotlin中用Boolean表示,该类型的变量只有两个值,分别是true和false。具体示例如下:
字符类型
字符类型变量用于存储一个单一字符,在Kotlin中用“Char”表示。Kotlin中每个字符类型变量都会占用2个字节。在给Char类型的变量赋值时,需要用一对英文半角格式的单引号''把字符括起来,如'K'。具体示例如下:
与Java不同的是,在Kotlin中Char类型的变量不能直接赋值为数字,必须使用单引号把数字括起来才可以进行赋值。
字符串类型
字符串类型变量用于存储多个字符,它与Java中的字符串类型变量非常相似。字符串类型用“String”表示,在给String类型的变量赋值时,需要用一对英文半角格式的双引号""把字符括起来。具体示例如下:
数组类型
在Kotlin中,如果想定义多个类型相同的变量,用常规的定义方式则需要定义多个变量,非常麻烦,为此Kotlin中提供了数组类型的变量,数组是用Array表示,其中数值类型、布尔类型、字符类型都有数组的表现形式。这些数组类型变量的初始化有两种方式,一种是以"数据类型 ArrayOf()"方法进行初始化,另一种是以arrayOf()方法进行初始化。
接下来以IntArray、BooleanArray、CharArray类型数组为例来演示第一种方式,具体示例如下:
从数组的定义格式可以看出,数组在创建时使用的是intArrayOf()方法,而不是Java中的new关键字。
需要注意的是,在Kotlin中不能使用stringArrayOf()方法创建字符串类型数组,因为String不属于基本数据类型。要想在Kotlin中声明字符串数组,需要使用Array<String>,并且对应的初始化数组的方法也相应变成了 arrayOf(),这种初始化方式对于其他类型的数组同样适用。接下来以第二种方式初始化数组类型的变量,具体示例如下:
通过上述两种方式对比可以看出,第二种初始化方式更加简单,在实际开发中可以根据个人的喜好选择初始化方式。
值得一提的是,在初始化数组类型的变量时,变量的数据类型同样可以省略,例如 :
var string_array = arrayOf("Hello","World","!")
- 上一篇: Kotlin:后代有多少我说了算
- 下一篇: Kotlin与Java的不同之处
猜你喜欢
- 2024-11-19 1-0 Protobuf通信协议.proto文件编写
- 2024-11-19 阿里P8资深架构师耗时一年整理19年Java工程师成神之路
- 2024-11-19 Java修炼终极指南:83. 声明一个Java记录
- 2024-11-19 Effective Java 3rd(Java高效编程)技术要点
- 2024-11-19 Spring源码系列(二)
- 2024-11-19 Java 14 发布了,快来了解下吧
- 2024-11-19 Spring技巧:深入研究Java 14和SpringBoot
- 2024-11-19 IntelliJ IDEA 2023.2 最新变化
- 2024-11-19 数据结构与算法 #18 下跳棋,极富想象力的同向双指针模拟
- 2024-11-19 Spring Bean生命周期你除了会背八股文面试,真的会用了吗?
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)