1. 數值類型
kotlin提供了如下的内置資料類型
資料類型 | 占用位元組數 |
Double | 8 |
Float | 4 |
Long | 8 |
Int | 4 |
Short | 2 |
Byte | 1 |
使用kotlin内置資料類型定義的一些變量和常亮示例:
var m : Int = 20
var price : Double = 10.6
var flag : Boolean = true
val v1 : Int = 10
val v2 : Double = 10.0
kotlin整數的預設類型是Int,浮點數的預設類型是Double。在Kotlin中,數值類型不支援強轉,需要使用Kotlin提供的一系列方法實作不同類型的轉換。
toByte():轉換到Byte類型
toShort():轉換到Short類型
toInt():轉換到Int類型
toLong():轉換到Long類型
toFloat():轉換到Float類型
toDouble():轉換到Double類型
toChar():轉換到Char類型
不同類型互相轉換的例子:
var m = 20
var n : Byte = 10
m = n.toInt()
var x : Long = 20
var value : Short = 20
m = value.toInt()
Kotlin提供了一些資料類型特殊表示方法,用于表示Long和Float類型的值,以及16進制和二進制。
1. 表示Long類型的值,在數值後面加L或l,如123L
2. 表示Float類型的值,在數值後面加F或f,123.1F
3. 表示16進制,在數值前面加0x,例如0x1F
4. 表示二進制,在數值前面加0b,例如0b10001
kotlin提供了下劃線作為數值分隔符,分隔符可以任意插入到數值之間,至于如何插入,可以根據數值具體表示内容決定。
例如:
val oneMillion = 1_000_000
val creditCardNumber = 1234_5656_9012_1234L
2. 字元類型
kotlin使用Char描述字元類型,在kotlin中字元類型不能直接看做是數字,這是和Java有所差別的,kotlin的字元也可以使用單引号表示。
private fun check(m : Char) {
if(m == 'a')
println("m == a: " + true)
}
kotlin支援反斜杠(\)轉義符,常用的特殊字元如下:
\t:制表符
\b:倒退符
\n:換行符
\r:回車符
\’:單引号
\”:雙引号
\\:反斜杠
可以使用toInt方法将字元串轉換為相應的ASCII,将數值字元轉換為對應的數值
private fun decimalDigitValue(c : Char) : Int {
if(c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt()
}
3. 布爾類型
Kotlin使用Boolean描述布爾類型,該類型有2個值:true和false,布爾類型有3種操作:邏輯或(||),邏輯與(&&)和邏輯非(!)。
var flag1 : Boolean = true
val flag2 : Boolean = false
if(flag1 && !flag2)
println("true")
4. 數組
kotlin使用Array類描述,在該類中包含了get和set方法,size屬性以及其他成員方法。
定義數組有多種方式,使用arrayOf函數定義可以存儲任意值的數組;使用arrayOfNulls函數定義指定長度的空數組;使用Array類的構造器指定數組長度和初始化資料的方式定義資料;使用intArrayOf、shortArrayOf等函數定義指定類型的數組,并初始化數組。
val arr1 = arrayOf(1, 2, 3, '4')
println(arr1[3])
arr1[2] = 'b'
println(arr1[2])
var arr2 = arrayOfNulls<Int>(10)
println("arr2 size: " + arr2.size)
var arr3 = Array(10, {i ->
(i * i).toString()
})
println(arr3[5])
var arr4 : IntArray = intArrayOf(10, 20, 30)
println(arr4[1])
5. 字元串
kotlin使用String表示字元串類型,有如下2種字元串:
普通字元串:類似于java字元串,可以在字元串中加上轉義符,如\n,會讓轉義字元後面的字元串換到下一行,這種字元串需要放在雙引号中。
保留格式字元串:這種字元串不能使用轉義字元,如果字元串有格式,直接解除安裝字元串中即可,這種字元串需要放在3個引号中。
var s1 = "hello\nwrold"
var s2 = """
hello
world
"""
println(s1)
println(s2)
6. 字元串模闆
所謂字元串模闆,就是在字元串中添加若幹個占位符,内容會在後面指定。
模闆使用美元符号$設定,美元符号後面可以跟變量,也可以使用表達式,使用表達式需要用${表達式}的形式。
val i = 10
val s1 = "i = $i"
println(s1)
val s2 = "abc"
val str = "$s2 length: ${s2.length}"
println(str)