基础数据类型

今天就和大家一起了解 Kotlin 中的基础数据类型,包括数字类型、字符类型、字符串类型和布尔类型:

1. 数字类型

除了 char 类型以外,Java 中的基本数据类型在 Kotlin 中都有相对应的数据类型,而且长度都是相同的:

Kotlin 类型 Java 类型 长度

Byte byte 8

Short short 16

Int int 32

Long long 64

Float float 32

Double double 64

可以看到,Kotlin 中的类型都是对 Java 基本类型的封装,因为 Kotlin 中不存在基本数据类型,所以不存在装箱拆箱的问题。

需要注意的一点是,Kotlin 没有自动类型转换,取值范围小的变量类型不会像 Java 那样,自动转换为取值范围大的类型。也就是说,不存在“Byte -> Short -> Int -> Long -> Float -> Double”这样的自动转换链。对于数字类型间的相互转换,可以使用这些数字类型的 to 方法:

val i: Int = 1val l: Long = i.toLong() //使用 to 方法显式地转换数字类型

对于数字的表示方法,有几个需要注意的地方:

  • Long 类型数字用大写的 L 字母标记:123456789L ;

  • Float 类型数字用 f 或 F 标记:123.456F ;

  • Kotlin 不支持八进制数字的表示方法;

2. Char 类型

Kotlin 中的 Char 类型并不是一个数字,它是一个真正的“字符”:

val c: Char = 'c'println(c == 1) //编译错误,不能直接比较println(c.toInt() == 1) //编译通过,可以把字符类型显式地转换为数字类型

Kotlin 的 Char 也支持使用反斜杠 \ 转义字符,支持的转义序列有 \t 、\b\n\r 、\' 、\" 、\\ 和\$,转义 Unicode 字符的写法与 Java 相同:\uFF00

3. String 类型

Kotlin 中的 String 类型与 Java 中的类似,都是不可变的对象,但是 kotlin.String 类提供的函数很少,只有 3 个常用函数和 1 个属性:

public override val length: Intpublic override fun get(index: Int): Char //与 Java 中的 charAt() 方法相同public override fun subSequence(startIndex: Int, endIndex: Int): CharSequencepublic override fun compareTo(other: String): Int

Kotlin 的字符串可以视为为一个 CharArray 对象,可用来遍历字符串中的每个字符:

val s = "Hello World"//在这里,Kotlin 编译器会把 c 自动推断为 Char 类型。for(c in s) println(c)

此外,Kotlin 字符串还支持特有的 字符串模板 功能,可以视为一种转义表达式的方法:

val i = 10//使用 $ 字符表示字符串模模板,它会把后面的表达式求值并插入到字符串的指定位置val s1 = "The value of i is $i" // s1 = "The value of i is 10"//建议用一对大括号括起 $ 后的表达式,避免歧义val s2 = "i / 2 = ${i /2}" // s2 = "i / 2 = 5"

字符串模板的写法,比 Java 中用 + 号连接字符串中的可变与不可变部分的写法 可读性更强

4. Boolean 类型

与 Java 中的 boolean 类型完全相同,有 true 和 false 两个值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章