天天看點

Kotlin學習之使用infix函數建構更可讀的文法

infix

1.什麼是infix函數

Kotlin允許在不使用括号和點号的情況下調用函數,那麼這種函數被稱為 infix函數。

2.infix 函數需要滿足的條件

需要滿足的條件:

  • 必須是成員函數或擴充函數
  • 必須隻有一個參數
  • 其參數不得接受可變數量的參數且不能有預設值

3.使用示例

在String類中有一個startsWith()函數,用于判斷一個字元串是否是以某個指定函數開頭的。

if( "Hello Kotlin".startsWith("Hello") ){
    //處理具體的邏輯
}
           

雖然startsWith()函數的用法非常簡單,但是借助infix函數,我們可以使用一種更具可讀性的文法來表達這段代碼

建立一個infix.kt

這裡給String類添加了一個beginsWith()函數,它用于判斷一個字元串是否是以某個指定參數開頭。而加上了infix關鍵字之後,beginsWith()函數就變成了一個infix函數,這樣除了傳統的函數調用方式之外,我們還可以用一種特殊的文法糖格式調用beginsWith()函數,如下所示:

if ("Hello Kotlin" beginsWith "Hello") {
    // 處理具體的邏輯
}
           

我們還可以給Collection接口添加一個擴充函數:

現在我們就可以使用如下的文法來判斷集合中是否包括某個指定的元素:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
if (list has "Banana") {
    // 處理具體的邏輯
}
           

現在我們就可以使用如下的文法來判斷集合中是否包括某個指定的元素:

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
if (list has "Banana") {
    // 處理具體的邏輯
}