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)