----《第一季Kotlin崛起:次世代Android開(kāi)發(fā) 》學(xué)習(xí)筆記
總目錄:每天學(xué)一點(diǎn) Kotlin ---- 目錄
上一篇:每天學(xué)一點(diǎn) Kotlin ---- 常量和變量
下一篇:每天學(xué)一點(diǎn) Kotlin ---- 基本類型:布爾類型
1. 數(shù)字類型
Long 長(zhǎng)整數(shù) 64位
Int 整數(shù) 32位
Short 短整數(shù) 16位
Byte 字節(jié) 8位
Double 雙精度小數(shù) 64位
Float 浮點(diǎn)數(shù) 32位
比較難受的是,類型的首字母是大寫(xiě)的,而且聲明變量或常量也和 C/Java 等不一樣...
2. 聲明和初始化
2.1 變量的聲明和初始化
fun main() {
var age1 : Int = 3
var age2 = 4; // Kotlin 會(huì)自動(dòng)推斷類型,所以也可以省略類型的關(guān)鍵字
var age3: Int
age3 = 10
// var age4; // 編輯器直接報(bào)錯(cuò)了
// age4 = 20
}
2.2 Kotlin 默認(rèn)的整數(shù)類型是 Int,其他的數(shù)字類型定義的寫(xiě)法為:
package com.cakes.test
fun main() {
val 一個(gè)Int = 123
val 一個(gè)Long = 123L
val 一個(gè)Double = 123.56
val 一個(gè)Float = 123.56F
val 一個(gè)八進(jìn)制 = 0xACF
val 一個(gè)二進(jìn)制 = 0b01010101
println(一個(gè)Int)
println(一個(gè)Long)
println(一個(gè)Double)
println(一個(gè)Float)
println(一個(gè)八進(jìn)制)
println(一個(gè)二進(jìn)制)
}
打印結(jié)果:
123
123
123.56
123.56
2767
85
3. 數(shù)字范圍
Kotlin 不支持自動(dòng)擴(kuò)展數(shù)字范圍,轉(zhuǎn)換必須手動(dòng)進(jìn)行。每一種數(shù)字都有一個(gè)轉(zhuǎn)換成其他數(shù)字類型的方法。例如:
val num = 123
val long = num.toLong()
val short = num.toShort()
val double = num.toDouble()
val char = num.toChar()
val byte = num.toByte()
在這些數(shù)字類型中有一整套的轉(zhuǎn)換函數(shù)由于類型相互轉(zhuǎn)換: toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()
4. 二進(jìn)制運(yùn)算
Kotlin 也支持對(duì)于二進(jìn)制的運(yùn)算:左移、右移、邏輯與、邏輯或、異或、取反等運(yùn)算,和Java中不同的是,這些不是內(nèi)建運(yùn)算符,而是用中綴函數(shù)類代替的。舉個(gè)栗子:
println("1 左移 2: " + (1 shl 2))
println("1 右移 2: " + (1 shr 2))
println("1 邏輯與 2: " + (1 and 2))
println("1 邏輯或 2: " + (1 or 2))
println("1 異或 2: " + (1 xor 2))
println("1 取反: " + 1.inv())
打印結(jié)果:
1 左移 2: 4
1 右移 2: 0
1 邏輯與 2: 0
1 邏輯或 2: 3
1 異或 2: 3
1 取反: -2
5. 浮點(diǎn)數(shù)(小數(shù))
5.1 Kotlin 默認(rèn)的浮點(diǎn)類型是 Double
5.2 可以用 Double 類型的 toInt() 方法把小數(shù)截?cái)酁檎麛?shù),注意:這里不是四舍五入,而是直接把小數(shù)點(diǎn)后的部分丟棄。
5.3 在數(shù)字運(yùn)算中,對(duì)于常用的加、減、乘、除、取余來(lái)說(shuō),如果其中有一個(gè)是小數(shù)的話,那么整體的計(jì)算結(jié)果也是小數(shù)(Double)
5.4 對(duì)小數(shù)也是可以取余數(shù)的
fun main(args: Array<String>) {
println("學(xué)習(xí)浮點(diǎn)數(shù)")
var dNum1 = 10.4
var iNum1 = dNum1.toInt()
var dNum2 = 10.5
var iNum2 = dNum2.toInt()
println("iNum1 = " + iNum1 + ", iNum2 = " + iNum2)
println("12 + 4.0 = " + (12 + 4.0))
println("12 + 4 = " + (12 + 4))
println("12 - 4.0 = " + (12 - 4.0))
println("12 - 4 = " + (12 - 4))
println("12 * 4.0 = " + (12 * 4.0))
println("12 * 4 = " + (12 * 4))
println("12 / 4.0 = " + (12 / 4.0))
println("12 / 4 = " + (12 / 4))
println("12 % 4.0 = " + (12 % 4.0))
println("12 % 4 = " + (12 % 4))
println("12 % 4.1 = " + (12 % 4.1))
println("12 % 4 = " + (12 % 4))
}
打印結(jié)果:
學(xué)習(xí)浮點(diǎn)數(shù)
iNum1 = 10, iNum2 = 10
12 + 4.0 = 16.0
12 + 4 = 16
12 - 4.0 = 8.0
12 - 4 = 8
12 * 4.0 = 48.0
12 * 4 = 48
12 / 4.0 = 3.0
12 / 4 = 3
12 % 4.0 = 0.0
12 % 4 = 0
12 % 4.1 = 3.8000000000000007
12 % 4 = 0