基礎數據類型

今天就和大家一起了解 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 兩個值。


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