Kotlin的基本數據類型

前言

在學習一門編程語言,那必然是學習語法 ,在語法的學習之中數據類型又有着舉足輕重的地位,今天我們就聊聊kotlin的基本數據類型

基本數據類型

Kotlin 提供了一組表示數字的內置類型。 對於整數,有四種不同大小的類型,因此值的範圍也不同。

在這裏插入圖片描述
這是kotlin官網的一張關於基本數據類型的截圖,kotlin的一大特點便是數據的類型推倒,所有以未超出 Int 最大值的整型值初始化的變量都會推斷爲 Int 類型。如果初始值超過了其最大值,那麼推斷爲 Long 類型。 如需顯式指定 Long 型值,請在該值後追加 L 後綴。

fun main() {
   val value = 1 //自動推斷爲Int類型
   val longValue = 1L //推斷爲Long類型
    
}

對於浮點數,Kotlin 提供了 Float 與 Double 類型。 根據 IEEE 754 標準, 兩種浮點類型的十進制位數(即可以存儲多少位十進制數)不同。 Float 反映了 IEEE 754 單精度,而 Double 提供了雙精度。

   val doubleValue = 2.3 //自動推斷爲Double類型
   val floatValue = 2.4f //通過顯示的添加一個f聲明float類型數據

請注意,與一些其他語言不同,Kotlin 中的數字沒有隱式拓寬轉換。 例如,具有 Double 參數的函數只能對 Double 值調用,而不能對 Float、 Int 或者其他數字值調用。

字面量

我的理解就是看到這樣寫出來的變量就知道他是啥(是什麼類型的變量),在kotlin中對於整型的字面量包含2進制, 10 進制和16進制 (不支持8進制)

   val value = 1 //自動推斷爲Int類型  十進制的整型
   val value2 = 0x0F //自動推斷爲Int類型  十六進制的整型
   val value3 = 0b00001011//自動推斷爲Int類型  二進制的整型

對於Float和Double類型 默認的字面量是小數,float類型的字面量是後面加了f的小數

    val doubleValue = 2.3 //自動推斷爲Double類型
    val floatValue = 2.4f //通過顯示的添加一個f聲明float類型數據

顯示轉換

kotlin中的顯示轉化就是可以將一個大的類型通過 toXXX()轉化爲對應的類型
每個數字類型支持如下的轉換:

 toByte(): Byte
 toShort(): Short
 toInt(): Int
 toLong(): Long
 toFloat(): Float
 toDouble(): Double
 toChar(): Char

運算

Kotlin支持數字運算的標準集,運算被定義爲相應的類成員(但編譯器會將函數調用優化爲相應的指令)
浮點數的比較

相等性檢測:a == b 與 a != b
比較操作符:a < b、 a > b、 a <= b、 a >= b
區間實例以及區間檢測:a..b、 x in a..b、 x !in a..b

字符

字符用 Char 類型表示。它們不能直接當作數字,但是我們可以顯式把字符轉換爲 Int 數字:

fun decimalDigitValue(c: Char): Int {
    if (c !in '0'..'9')
        throw IllegalArgumentException("Out of range")
    return c.toInt() - '0'.toInt() // 顯式轉換爲數字
}

Boolean

布爾用 Boolean 類型表示,它有兩個值:true 與 false。若需要可空引用布爾會被裝箱。
Boolean數據類型的運算

|| – 短路邏輯或
&& – 短路邏輯與
!  - 邏輯非

字符串

字符串用 String 類型表示。字符串是不可變的。 字符串的元素——字符可以使用索引運算符訪問: s[i]

for (c in str) {
    println(c)
}

可以用 + 操作符連接字符串。這也適用於連接字符串與其他類型的值, 只要表達式中的第一個元素是字符串:

val s = "abc" + 1
println(s + "def")

字符串的字面值:Kotlin 有兩種類型的字符串字面值: 轉義字符串可以有轉義字符, 以及原始字符串可以包含換行以及任意文本。原始字符串 使用三個引號(""")分界符括起來,內部沒有轉義並且可以包含換行以及任何其他字符:

字符串模版:字符串字面值可以包含模板表達式 ,即一些小段代碼,會求值並把結果合併到字符串中。 模板表達式以美元符($)開頭,由一個簡單的名字構成:

val i = 10
println("i = $i") // 輸出“i = 10”

val s = "abc"
println("$s.length is ${s.length}") // 輸出“abc.length is 3”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章