专业编程基础技术教程

网站首页 > 基础教程 正文

Kotlin基础到实战|Kotlin数据类型

ccvgpt 2024-11-19 02:13:03 基础教程 6 ℃

变量的数据类型

任何编程语言都有自己的数据类型,例如,,Java编程语言中的数据类型包含基本数据类型和引用数据类型,其中基本数据类型包含数值型、字符型、布尔型,引用数据类型包括类、接口、数组、枚举、注解。而Kotlin语言中的数据类型不区分基本数据类型和引用数据类型,分为数值型、字符型、布尔型、数组型、字符串型。

数值类型

Kotlin中的数值类型与Java中数值类型相似,包括Byte(字节)、Short(短整型)、Int(整型)、Long(长整型)、Float(浮点型)、Double(双精度浮点型),只不过在Java中这些数值类型用小写字母表示,而在Kotlin中用首字母大写的形式表示。Kotlin中数值类型变量所占存储空间的大小以及存储值的范围如表所示:

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","!")

Tags:

最近发表
标签列表