Kotlin 默認(rèn)和命名參數(shù)

在本文中,您將在示例的幫助下了解默認(rèn)參數(shù)和命名參數(shù)。

Kotlin 默認(rèn)參數(shù)

在Kotlin中,您可以為函數(shù)定義中的參數(shù)提供默認(rèn)值。

如果通過傳遞的參數(shù)調(diào)用該函數(shù),則將這些參數(shù)用作參數(shù)。但是,如果在不傳遞參數(shù)的情況下調(diào)用該函數(shù),則會使用默認(rèn)參數(shù)。

默認(rèn)參數(shù)如何工作?

一:傳遞所有參數(shù)

兩個參數(shù)都傳遞給函數(shù)

函數(shù)foo()有兩個參數(shù)。參數(shù)提供有默認(rèn)值。但是,foo()通過在上述程序中傳遞兩個參數(shù)來調(diào)用。因此,不使用默認(rèn)參數(shù)。

在foo()函數(shù)中,letter 和 number的值分別為'x' 和 2。

二:未傳遞所有參數(shù),只傳一個參數(shù)

沒有將所有參數(shù)傳遞給函數(shù)

在這里,只有一個(第一個)參數(shù)傳遞給foo()函數(shù)。 因此,第一個參數(shù)使用傳遞給函數(shù)的值。 但是,第二個參數(shù) number 將采用默認(rèn)值,因?yàn)樵诤瘮?shù)調(diào)用期間未傳遞第二個參數(shù)。

在foo()函數(shù)中,letter和number的值分別為 'y' 和 15。

三:未傳遞任何參數(shù)

沒有參數(shù)傳遞給函數(shù)

在這里,在不傳遞任何參數(shù)的情況下調(diào)用foo()函數(shù)。 因此,這兩個參數(shù)都使用其默認(rèn)值。

在foo()函數(shù)中,letter 和 number 的值分別為 'a' 和 15。

示例:Kotlin 默認(rèn)參數(shù)

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}

fun main(args: Array<String>) {
    println("沒有傳遞參數(shù)時(shí)的輸出:")
    displayBorder()

    println("\n\n'*' 作為第一個參數(shù).")
    println("傳遞第一個參數(shù)時(shí)的輸出:")
    displayBorder('*')

    println("\n\n'*' 用作第一個參數(shù).")
    println("5用作第二個參數(shù).")
    println("同時(shí)傳遞兩個參數(shù)時(shí)的輸出:")
    displayBorder('*', 5)

}

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

沒有傳遞參數(shù)時(shí)的輸出:
===============

'*' 作為第一個參數(shù).
傳遞第一個參數(shù)時(shí)的輸出:
***************

'*' 作為第一個參數(shù).
5作為第二個參數(shù).
同時(shí)傳遞兩個參數(shù)時(shí)的輸出:
*****

Kotlin 命名參數(shù)

在討論命名參數(shù)之前,讓我們考慮對上面的代碼進(jìn)行一些修改:

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}

fun main(args: Array<String>) {
    displayBorder(5)
}

在這里,我們嘗試將第二個參數(shù)傳遞給displayBorder()函數(shù),并對第一個參數(shù)使用默認(rèn)參數(shù)。但是,此代碼將給出一個使用錯誤。這是因?yàn)榫幾g器認(rèn)為我們試圖為字符(Char類型)提供5(Int值)。

為了解決這種情況,可以使用命名參數(shù)。方法如下:

示例:Kotlin 命名參數(shù)

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}

fun main(args: Array<String>) {
    displayBorder(length = 5)
}

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

=====

在上述程序中,我們使用命名實(shí)參(length = 5)來指定length函數(shù)定義中的參數(shù)應(yīng)采用此值(與實(shí)參的位置無關(guān))。

Kotlin中的命名參數(shù)

第一個參數(shù)字符使用程序中的默認(rèn)值 '='。

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