Kotlin基本類型

NO IMAGE

前言

  • 你還在把Java當成Android官方開發語言嗎?Kotlin瞭解一下!
  • 2017年Google IO大會宣佈使用Kotlin作為Android的官方開發語言,相比較與典型的面相對象的JAVA語言,Kotlin作為一種新式的函數式編程語言,也有人稱之為Android平臺的Swift語言。

環境以及工具

Android Studio 3.3

數字

Kotlin 處理數字在某種程度上接近 Java,但是並不完全相同。例如,對於數字沒有隱式拓寬轉換(如 Java 中 int 可以隱式轉換為long——譯者注)

Kotlin 提供瞭如下的內置類型來表示數字(與 Java 很相近):

類型字節大小
Double8
Float4
Long8
Int4
Short2
Byte1
  1. 比較兩個數
  //-----------------------比較兩個數-------------------------------------
    //三個等號 === 表示比較對象地址,兩個 == 表示比較兩個值大小
    val a: Int = 128
    println(a === a)//輸出結果-------------------------true-------------------------
    val b: Int? = a
    val c: Int? = a
    println(b == c)//輸出結果-------------------------true-------------------------
    //如果 a<128  false, a>=128  true 長話短說,JVM把[-128,127]的所有int數字全部緩存了,
    // 任何指向這個範圍的對象,都不可能被另外"創建",又何談“裝箱”
    println(b === c)//輸出結果-------------------------false-------------------------
  1. 顯式轉換
  //-----------------------顯式轉換-------------------------------------
    //較小類型並不是較大類型的子類型,我們可以顯式轉換來拓寬數字類型
    val x: Byte = 1
    //val y: Int = b // 轉化錯誤
    val y: Int = x.toInt()
    println(y)//輸出結果-------------------------1-------------------------
  1. 自動類型轉化
   //-----------------------自動類型轉化-------------------------------------
    val temp = 10L + 3 // Long + Int => Long
    println(temp)//輸出結果-------------------------13-------------------------
  1. 運算
    //-----------------------位操作符-------------------------------------
    //左移
    val shlShow = 1.shl(2)
    println(shlShow)//輸出結果-------------------------4-------------------------
    //右移
    val shrShow = 4.shr(2)
    println(shrShow)//輸出結果-------------------------1-------------------------)

字符

字符用 Char 類型表示。它們不能直接當作數字

    //-----------------------字符-------------------------------------
    //字符用 Char 類型表示。它們不能直接當作數字,字符字面值用單引號括起來: '1'
    val ch: Char = 'a'
    println(ch)//輸出結果-------------------------a-------------------------
    val chToInt: Int = ch.toInt()
    println(chToInt)//輸出結果-------------------------97-------------------------

布爾

    //-----------------------布爾-------------------------------------
    val bl: Boolean = false
    println(bl)//輸出結果-------------------------false-------------------------

數組

    //-----------------------數組-------------------------------------
    val arrs = arrayOf(1, 2, 3, 0, 6)
    for (arr in arrs) {
        print("$arr,")//輸出結果-------------------------1,2,3,0,6,-------------------------
    }
    println()
    val arrs2 = Array(3) { i -> (i * 2) }
    for (arr in arrs2) {
        print("$arr,")//輸出結果-------------------------0,2,4,-------------------------
    }
    println()

    val z: IntArray = intArrayOf(1, 2, 3)
    z[0] = z[1] + z[2]
    println(z[0])//輸出結果-------------------------5-------------------------

字符串

 //-----------------------字符串-------------------------------------
    val strs: String = "12306"
    for (s in strs) {
        print("$s,")//輸出結果-------------------------1,2,3,0,6,-------------------------
    }
    println()

  1. 字符串字面值

Kotlin 有兩種類型的字符串字面值: 轉義字符串可以有轉義字符,以及原始字符串可以包含換行以及任意文本。轉義字符串很像 Java 字符串:

    //轉義字符串可以有轉義字符
    val ss = "Hello, world!\n"
    println(ss)//輸出結果-------------------------Hello, world!\n-------------------------
    val sss = "Hello, world2!"
    println(sss)//輸出結果-------------------------Hello, world2!-------------------------

輸出結果

Hello, world!

Hello, world2!
  1. 原始字符串
  
    //原始字符串 使用三個引號(""")分界符括起來,
    //內部沒有轉義並且可以包含換行以及任何其他字符
    //默認 | 用作邊界前綴
    println("原始字符串star")
    val text1 = """
    for (c in "foo")
        print(c)
"""
    println(text1)
    println("原始字符串end")
    var text = """
        |666
        |777
        |999
        """.trimMargin()//前置空格刪除
    println(text)
    println(text.length) 

輸出結果

原始字符串star

    for (c in "foo")
        print(c)

原始字符串end
666
777
999
11

字符串模板

  //-----------------------字符串模板-------------------------------------
    val i = 12306
    val s = "i = $i"
    println(s)//輸出結果-------------------------i = 12306-------------------------

    val s2 = "I am boyi.chen"
    val str = "$s2.length is ${s2.length}"
    println(str)//輸出結果-------------------------I am boyi.chen.length is 14-------------------------

    val price = ".99"
    println(price)//輸出結果-------------------------.99-------------------------

源碼

請關注公眾號並在後臺回覆:kotlin

Kotlin重構系列分享教程

Kotlin環境搭建

Kotlin重構初體驗之告別FindViewById

Kotlin重構如何兼容原先的ButterKnife、EventBus3.1

當ButterKnife8.8.1碰到AndroidX怎麼辦

Kotlin教程Githup開源項目

Python爬蟲系列分享教程

Python爬蟲之旅之Selenium庫的使用

Python爬蟲之旅之豆瓣音樂

請關注我(分享日常開發)

Kotlin基本類型

相關文章

Kotlin繼承

Kotlin類和對象

Kotlin返回與跳轉

Kotlin控制語句ifwhenforwhile