Kotlin中的变量

变量的定义

在程序运行期间,随时可能产生一些临时的数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元被称为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。

Kotlin中的变量分为两种类型,分别是可变变量与不可变变量(只读变量),可变变量用关键字var来修饰,可以进行多次修改。不可变变量用关键字val来修饰,只能进行一次初始化。可变变量对应的是Java语言中的普通变量,不可变变量对应的是Java语言中用final关键字修饰的常量。

接下来,我们通过具体的代码来学习如何声明变量以及给变量赋值。

1. 声明变量
声明一个可变变量与不可变变量的语法格式如下:

var变量名:数据类型
val变量名:数据类型

上述格式中,var表示声明的是一个可变变量,val表示声明的是一个不可变变量,变量名是自定义的,数据类型是表示该变量属于什么类型的数据。

声明一个可变变量与不可变变量的示例代码如下:

var a: Int      //声明一个Int 类型的可变变量a 
val b: String   //声明一个String 类型的不可变变量b

2. 给变量赋值
在Kotlin中给变量赋值分为两种方式,第1种是声明变量的同时给变量赋值,第2种是声明变量和变量赋值分开设置。接下来通过具体代码来演示这两种方式。

(1)声明变量的同时给变量赋值,具体示例如下:

var c: Int = 1

上述代码中,Int类型变量c被赋值为1。“=”前边的部分主要是声明了一个Int类型的变量c,“=”后边是给声明的变量c赋值为1。

值得一提的是,上述直接赋值变量的方式,可以省略变量的数据类型,Kotlin会根据变量的值自动识别变量的数据类型,其他类型的变量也一样。具体示例如下:

var c = 1

(2)声明变量和变量赋值可以分开设置,具体示例如下:

var d: Int 
d = 10

上述代码中,首先声明了一个Int类型的变量d,接着将变量d赋值为10。

脚下留心:声明变量与给变量赋值时遇到的问题

(1)在不赋值的情况下,只声明变量不约束具体类型时,程序会报错,具体示例如下:

var c  //只声明不约束具体类型会报错

(2)在同一方法体中,不能重复定义一个变量,否则编译器会提示命名冲突,具体示例如下:

fun main(args: Array<String>) { 
    var a: String      //变量为String 类型 
    // var a: String=""  重复定义变量a 会报错
}

(3)可变变量可以多次赋值,不可变变量不可以进行二次赋值,具体示例如下:

fun main(args: Array<String>) { 
    var a: Int // 可变变量a 
    val b: Int // 不可变变量b 
    //可以多次给变量a 赋值 
    a = 1 
    a = 2 
    a = 3 
    b = 1  //第1 次给变量b 赋值 
   // b = 2  第2 次给变量b 赋值会报错 
}

变量的数据类型

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

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

表中占用空间指的是不同类型的变量占用内存的大小。例如一个Byte类型的变量会占用1个字节大小的内存空间,存储的值只能是-27~(27-1)的整数,一个Int类型的变量会占用4个字节大小的内存空间,存储值范围是-231~(231-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不同。

2. 布尔类型变量
布尔类型变量用于存储布尔值,在Kotlin中用Boolean表示,该类型的变量只有两个值,分别是true和false。具体示例如下:

var a: Boolean = true   
var b = true

3. 字符类型变量
字符类型变量用于存储一个单一字符,在Kotlin中用“Char”表示。Kotlin中每个字符类型变量都会占用2个字节。在给Char类型的变量赋值时,需要用一对英文半角格式的单引号' '把字符括起来,如'k'。具体示例如下:

var a: Char = 'a' 
var b = 'b'

与Java不同的是,在Kotlin中Char类型的变量不能直接赋值为数字,必须使用单引号把数字括起来才可以进行赋值。
4. 字符串类型变量
字符串类型变量用于存储多个字符,它与Java中的字符类型变量非常相似。字符串类型用“String”表示,在给String类型的变量赋值时,需要用一对英文半角格式的双引号""把字符括起来。具体示例如下:

var a: String = "Hello World!" 
var a = "Hello World!"

5. 数组类型变量
在Kotlin中,如果想定义多个类型相同的变量,用常规的定义方式则需要定义多个变量,非常麻烦,为此Kotlin中提供了数组类型变量。数组是用Array表示,其中数值类型、布尔类型、字符类型都有数组的表现形式。这些数组类型变量的初始化有两种方式,一种是以“数据类型ArrayOf()”方法进行初始化,另一种是以arrayOf()方法进行初始化。

接下来以IntArray、BooleanArray、CharArray类型数组为例来演示第1种方式,具体示例如下:

var int_array: IntArray = intArrayOf(1, 2, 3)  
var boolean_array: BooleanArray = booleanArrayOf(true, false, true) 
var char_array: CharArray = charArrayOf('a', 'b', 'c')

从数组的定义格式可以看出,数组在创建时
使用的是intArrayOf()方法,而不是Java中的new关键字。
需要注意的是,在Kotlin中不能使用stringArrayOf()方法创建字符串类型数组,因为String不属于基本数据类型。要想在Kotlin中声明字符串数组,需要使用Array<String>,并且对应的初始化数组的方法也相应变成了arrayOf(),这种初始化方式对于其他类型的数组同样适用。接下来以第2种方式初始化数组类型的变量,具体示例如下:

var int_array1: Array<Int> = arrayOf(1, 2, 3) 
var boolean_array1: Array<Boolean> = arrayOf(true, false, true) 
var char_array1: Array<Char> = arrayOf('a', 'b', 'c') 
var string_array: Array<String> = arrayOf("Hello", "World", "!")

通过上述两种方式对比可以看出,第2种初始化方式更加简单,在实际开发中可以根据个人喜好选择初始化方式。
值得一提的是,在初始化数组类型的变量时,变量的数据类型同样可以省略,例如“var string_array=arrayOf("Hello","World","!")”

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!