基本數(shù)值類型包括Byte
/Short
/Int
/Long
/Float
/Double
盖彭。值得注意的是不见,字符不屬于數(shù)值類型葱跋,是一個獨立的數(shù)值類型持寄。
數(shù)據(jù)類型的寬度
數(shù)據(jù)類型 | 寬度 |
---|---|
Byte | 8 |
Short | 16 |
Int | 32 |
Long | 64 |
Float | 32 |
Double | 64 |
字面常量
- 十進制:
123
- 長整形:
123L
以L
結(jié)尾 - 16進制:
0xF0
以0x
開頭 - 2進制:
0b0101
以0b
開頭 - Double型:
123.4
/123e10
- Float型:
123.4f
以f
/F
結(jié)尾 - 不支持8進制
可以使用_
增強數(shù)字可讀性:`0b0101_0000_1010_1111
比較兩個數(shù)字
Kotlin中沒有基礎(chǔ)數(shù)值類型,所有的都是對象娱俺,定義的沒一個變量都是封裝的對象稍味,因此在比較時就有數(shù)據(jù)大小還是對象是否相同的區(qū)別。
===
比較的是對象地址荠卷,也就是對象是不是同一個模庐,==
比較的是兩個變量值的大小
val a:Int = 222
println("(a === a) = " + (a === a))
println("(a == a) = " + (a == a))
val aBoxeda:Int = a
val anotherBoxeda:Int = a
println("(aBoxeda === anotherBoxeda) = " + (aBoxeda === anotherBoxeda))
println("(aBoxeda == anotherBoxeda) = " + (aBoxeda == anotherBoxeda))
輸出
(a === a) = true
(a == a) = true
(aBoxeda === anotherBoxeda) = true
(aBoxeda == anotherBoxeda) = true
注意上面的聲明,兩個裝箱的變量都是非可空的油宜,如果定義為可空掂碱,那么輸出的將會是flase
val aBoxeda:Int? = a
val anotherBoxeda:Int? = a
println("(aBoxeda === anotherBoxeda) = " + (aBoxeda === anotherBoxeda))
println("(aBoxeda == anotherBoxeda) = " + (aBoxeda == anotherBoxeda))
看怜姿,就像這樣,更深層的東西以后再研究
(aBoxeda === anotherBoxeda) = false
(aBoxeda == anotherBoxeda) = true