Kotlin 中綴函數(shù)(infix)

在本文中,您將學(xué)習(xí)使用 infix 符號在Kotlin中調(diào)用函數(shù)(借助示例)。

在學(xué)習(xí)如何創(chuàng)建具有中綴符號的函數(shù)之前,讓我們先研究兩個常用的中綴函數(shù)。

使用 || 和 &&& 操作時,編譯器分別查找 or 和 and 函數(shù),并在后臺調(diào)用它們。

這兩個函數(shù)支持中綴表示法。

示例:Kotlin or & and 函數(shù)

fun main(args: Array<String>) {
    val a = true
    val b = false
    var result: Boolean

    result = a or b // a.or(b)
    println("result = $result")

    result = a and b // a.and(b)
    println("result = $result")
}

運(yùn)行該程序時,輸出為:

result = true
result = false

在上面的程序中,使用a or b 代替 a.or(b),并使用 a and b 代替 a.and(b)。 這是允許的,因為這兩個函數(shù)支持中綴表示法。

如何創(chuàng)建帶有中綴符號的函數(shù)?

您可以使用中綴表示法在Kotlin中進(jìn)行函數(shù)調(diào)用,如果函數(shù)

  • 成員函數(shù)(或擴(kuò)展函數(shù)。

  • 只有一個參數(shù)。

  • 標(biāo)有 infix 關(guān)鍵字。

示例:用戶定義的函數(shù),帶中綴表示法

class Structure() {

    infix fun createPyramid(rows: Int) {
        var k = 0
        for (i in 1..rows) {
            k = 0
            for (space in 1..rows-i) {
                print("  ")
            }
            while (k != 2*i-1) {
                print("* ")
                ++k
            }
            println()
        }
    }
}

fun main(args: Array<String>) {
    val p = Structure()
    p createPyramid 4       // p.createPyramid(4)
}

運(yùn)行該程序時,輸出為:

      * 
    * * * 
  * * * * * 
* * * * * * *

在這里,createPyramid()是創(chuàng)建金字塔結(jié)構(gòu)的infix函數(shù)。 它是Structure類的成員函數(shù),僅接受一個Int類型的參數(shù),并以關(guān)鍵字infix開頭。

金字塔的行數(shù)取決于傳遞給函數(shù)的參數(shù)。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清