Kotlin 學習:基本語法

1. 函數

1.1 函數的聲明

函數定義使用關鍵字 fun,參數格式爲:參數 : 類型

    fun sum(a: Int, b: Int): Int {
        return a + b
    }

1.2 省略返回值類型

將表達式作爲函數體、返回值類型自動推斷的函數:

fun sum1(a: Int, b: Int) = a + b

1.3 無返回值的函數

在 Kotlin 中,函數無返回值,用關鍵字:Unit ,類似 Java 中 void:

    fun sum2(a: Int, b: Int): Unit {
        Log.e("zzw", "無返回值的函數")
    }

Unit 返回類型可以省略:

    fun sum3(a: Int, b: Int) {
        Log.e("zzw", "無返回值的函數,返回值類型可以省略")
    }

2. 變量 

2.1 變量的聲明

定義只讀局部變量使用關鍵字 val 定義,可重新賦值的變量使用 var 關鍵字:

    val mA = 1
    val mB = 2
    var mC = 3

當嘗試給 val 再次賦值,會有錯誤提醒:

3. 註釋

Kotlin 支持單行(或行末)與多行(塊)註釋:

        // 這是一個行註釋

        /* 這是一個多行的
       塊註釋。 */

Kotlin 中的塊註釋可以嵌套:

        /* 註釋從這裏開始
        /* 包含嵌套的註釋 */
        並且在這裏結束。 */

4. 條件表達式

Kotlin 中條件表達式跟 Java一樣:

    fun maxNum(a: Int, b: Int): Int {
        if (a > b) {
            return a
        } else {
            return b
        }
    }

5. 空值與 null 檢測

當某個變量的值可以爲 null 的時候,必須在聲明處的類型後添加 ? 來標識該引用可爲空:

    var a:String ?="zzw"
    var b:String ="zzw"

如果是普通的聲明變量:

var b:String ="zzw"

當對其賦值爲 null 的時候,會報錯: 

對於 a,因爲 a 可能爲空,所以無法進行如下的調用:

對於 b,不存在空的情況,不存在發生空指針的情況,所以可以進行如下的調用:

b.length

如果 a 仍然要調用 a.lenght,則用如下的方式:

var l = a?.length ?: -1

如果 a 爲 null,返回-1,否則返回 a.length。

6. 類型檢測與自動類型轉換

is 運算符檢測一個表達式是否某類型的一個實例。

    fun getStringLength(obj: Any): Int? {
        if (obj is String) {
            return obj.length
        } else {
            return null
        }
    }

7. 循環 

7.1 for 循環

        val items = listOf("apple", "banana", "kiwifruit")
        for (item in items) {
            Log.e("zzw", item);
        }

運行結果:

2019-09-23 22:23:19.932 5791-5791/cn.zzw.messenger.hellokotlin E/zzw: apple
2019-09-23 22:23:19.932 5791-5791/cn.zzw.messenger.hellokotlin E/zzw: banana
2019-09-23 22:23:19.932 5791-5791/cn.zzw.messenger.hellokotlin E/zzw: kiwifruit

或者:

        val items = listOf("apple", "banana", "kiwifruit")
        for (index in items.indices) {
            Log.e("zzw","item at $index is ${items[index]}")
        }

 運行結果:

2019-09-23 22:29:03.650 6060-6060/cn.zzw.messenger.hellokotlin E/zzw: item at 0 is apple
2019-09-23 22:29:03.650 6060-6060/cn.zzw.messenger.hellokotlin E/zzw: item at 1 is banana
2019-09-23 22:29:03.651 6060-6060/cn.zzw.messenger.hellokotlin E/zzw: item at 2 is kiwifruit

7.2 while 循環 

        val items = listOf("apple", "banana", "kiwifruit")
        var index = 0
        while (index < items.size) {
            Log.e("zzw", "item at $index is ${items[index]}")
            index++
        }

8. when 表達式

    fun describe(obj: Any): String =
        when (obj) {
            1 -> "One"
            "Hello" -> "Greeting"
            is Long -> "Long"
            !is String -> "Not a string"
            else -> "Unknown"
        }

9. 使用區間

使用 in 運算符來檢測某個數字是否在指定區間內:

        var x = 5;
        if (x in 1..10) {
            Log.e("zzw", "fits in range")
        }

判斷是否在範圍外:

        if (x !in 6..10) {
            Log.e("zzw", "x is out of rang")
        }

參考:

https://kotlinlang.org/docs/reference/basic-syntax.html

https://www.kotlincn.net/docs/reference/basic-syntax.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章