隨著,谷歌開始大力推行Kotlin之后也物,慢慢的 Kotlin 在 Android 開發(fā)圈里是越來越流行了宫屠。從這一篇開始,我也計劃開始學習一下這門語言滑蚯,同時做一下筆記浪蹂。
首先,先推薦一下 Kotlin 中文網(wǎng)
基本類型
kotlin 也是一門面向?qū)ο缶幊痰恼Z言告材,它里面的所有東西也都是一個個對象坤次。 這篇我們就來說說 kotlin 語言中的基本類型:數(shù)字、字符斥赋、布爾缰猴、字符串。
數(shù)字類型
- 整型
Kotlin 提供了一組表示數(shù)字的內(nèi)置類型疤剑。 對于整數(shù)滑绒,有四種不同大小的類型,因此值的范圍也不同隘膘。
類型 | 大小(Byte) | 最小值 | 最大值 |
---|---|---|---|
Byte | 8 | -128 | 127 |
Short | 16 | -32768 | 32767 |
Int | 32 | -2,147,483,648 (負2的31次方) | 2,147,483,647(2的31次方減1) |
Long | 64 | -9,223,372,036,854,775,808 (負2的63次方) | 9,223,372,036,854,775,807(2的63次方減1) |
在 kotlin 中疑故,它是有自動類型推導的能力
val one = 1 // Int
val threeBillion = 3000000000 // Long
val oneLong = 1L // Long
val oneByte: Byte = 1 //Byte
- 浮點型
kotlin 中提供了Float 單精度
和Double 雙精度
類型 | 大小(Byte) |
---|---|
Float | 32 |
Double | 64 |
val pi = 3.14 // Double
val e = 2.7182818284 // Double
val eFloat = 2.7182818284f // Float,實際值為 2.7182817
- 數(shù)字轉換
每個數(shù)字類型支持如下的轉換:toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char
字符
字符字面值用單引號括起來: '1'弯菊。 特殊字符可以用反斜杠轉義纵势。 支持這幾個轉義序列:\t、 \b管钳、\n钦铁、\r、'才漆、"育瓜、\ 與 $。 編碼其他字符要用 Unicode 轉義序列語法:'\uFF00'栽烂。
我們可以顯式把字符轉換為 Int 數(shù)字:
fun decimalDigitValue(c: Char): Int {
if (c !in '0'..'9')
throw IllegalArgumentException("Out of range")
return c.toInt() - '0'.toInt() // 顯式轉換為數(shù)字
}
布爾
兩個值 true
與false
內(nèi)置的布爾運算有:
- || – 短路邏輯或
- && – 短路邏輯與
- ! - 邏輯非
數(shù)組
Array
類來表示數(shù)組。
class Array<T> private constructor() {
val size: Int
operator fun get(index: Int): T
operator fun set(index: Int, value: T): Unit
operator fun iterator(): Iterator<T>
// ……
}
使用 arrayOf ()
可以創(chuàng)建數(shù)組并傳入值恋脚。
var a = arrayOf(1, 2, 3)
使用 arrayOfNulls()
可以創(chuàng)建一個指定長的腺办,所有元素都為 null 的數(shù)組。
還可以 Array
的構造函數(shù)的形式創(chuàng)建數(shù)組糟描。
// 創(chuàng)建一個 Array<String> 初始化為 ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }
Kotlin 中數(shù)組是不型變的(invariant)怀喉。這意味著 Kotlin 不讓我們把 Array<String>
賦值給 Array<Any>
,以防止可能的運行時失敗
原生類型數(shù)組
val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]
// 大小為 5船响、值為 [0, 0, 0, 0, 0] 的整型數(shù)組
val arr = IntArray(5)
// 例如:用常量初始化數(shù)組中的值
// 大小為 5躬拢、值為 [42, 42, 42, 42, 42] 的整型數(shù)組
val arr = IntArray(5) { 42 }
// 例如:使用 lambda 表達式初始化數(shù)組中的值
// 大小為 5躲履、值為 [0, 1, 2, 3, 4] 的整型數(shù)組(值初始化為其索引值)
var arr = IntArray(5) { it * 1 }
字符串
String
表示字符串。
val s = "abc"
println("$s.length is ${s.length}") // 輸出“abc.length is 3”