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