Kotlin 函數(shù)

在本文中,您將了解函數(shù)。什么是函數(shù),其語(yǔ)法以及如何在Kotlin中創(chuàng)建用戶函數(shù)。

在編程中,函數(shù)是一組執(zhí)行特定任務(wù)的相關(guān)語(yǔ)句。

函數(shù)用于將大型程序分解為較小的模塊化塊。例如,您需要根據(jù)用戶的輸入來(lái)創(chuàng)建圓圈并為其著色。您可以創(chuàng)建兩個(gè)函數(shù)來(lái)解決此問(wèn)題:

  • createCircle() 函數(shù) - 用來(lái)創(chuàng)建圓圈

  • colorCircle() 函數(shù) - 用來(lái)填充顏色

將復(fù)雜的程序劃分為較小的組件,可以使我們的程序更有條理和更易于管理。

此外,它避免重復(fù)并使代碼可重用。

函數(shù)類(lèi)型

根據(jù)用戶定義的函數(shù)還是標(biāo)準(zhǔn)庫(kù)中的函數(shù),有兩種類(lèi)型的函數(shù):

  • Kotlin 標(biāo)準(zhǔn)庫(kù)函數(shù)

  • 用戶定義的函數(shù)

Kotlin 標(biāo)準(zhǔn)庫(kù)函數(shù)

標(biāo)準(zhǔn)庫(kù)函數(shù)是Kotlin中的內(nèi)置函數(shù),可以隨時(shí)使用。例如,

  • print() 是一個(gè)庫(kù)函數(shù),可將消息打印到標(biāo)準(zhǔn)輸出流(監(jiān)視器)。

  • sqrt() 返回?cái)?shù)字的平方根(Double值)

fun main(args: Array<String>) {

    var number = 5.5
    print("Result = ${Math.sqrt(number)}")
}

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

Result = 2.345207879911715

這是Kotlin標(biāo)準(zhǔn)庫(kù)的鏈接,供您瀏覽。

用戶定義函數(shù)

如前所述,您可以自己創(chuàng)建函數(shù)。這些函數(shù)稱為用戶定義函數(shù)。

如何在Kotlin中創(chuàng)建用戶定義的函數(shù)?

在使用(調(diào)用)函數(shù)之前,需要先對(duì)其進(jìn)行定義。

在Kotlin中定義函數(shù)的方法如下:

fun callMe() {
    //函數(shù)體
}

要在Kotlin中定義函數(shù),請(qǐng)使用 fun 關(guān)鍵字。然后是函數(shù)的名稱(標(biāo)識(shí)符)。在這里,函數(shù)的名稱為callMe。

在上面的程序中,括號(hào)( )為空。這意味著此函數(shù)不接受任何參數(shù)。您將在本文的后面部分了解參數(shù)。

花括號(hào)內(nèi)的代碼{ }是函數(shù)的主體。

如何調(diào)用函數(shù)?

您必須調(diào)用該函數(shù)才能在函數(shù)體內(nèi)運(yùn)行代碼。這是如何做:

callme()

該語(yǔ)句調(diào)用先前聲明的函數(shù)callMe()。

Koltin中的函數(shù)調(diào)用

示例:簡(jiǎn)單函數(shù)程序

fun callMe() {
    println("從callMe()函數(shù)打印。")
    println("這很酷(還在從里面打印)。")
}

fun main(args: Array<String>) {
    callMe()
    println("從callMe()函數(shù)進(jìn)行外部打印。")
}

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

從callMe()函數(shù)打印。
這很酷(還在從里面打印)。
從callMe()函數(shù)進(jìn)行外部打印。

上面代碼中的 callMe() 函數(shù)不接受任何參數(shù)。

另外,該函數(shù)不返回任何值(返回類(lèi)型為Unit)。

讓我們來(lái)看另一個(gè)函數(shù)示例。該函數(shù)將接受參數(shù)并返回一個(gè)值。

示例:使用函數(shù)將兩個(gè)數(shù)字相加

fun addNumbers(n1: Double, n2: Double): Int {
    val sum = n1 + n2
    val sumInteger = sum.toInt()
    return sumInteger
}

fun main(args: Array<String>) {
    val number1 = 12.2
    val number2 = 3.4
    val result: Int

    result = addNumbers(number1, number2)
    println("result = $result")
}

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

result = 15

帶參數(shù)和返回值的函數(shù)如何工作?

在此,在函數(shù)調(diào)用期間將兩個(gè)Double類(lèi)型的參數(shù)number1和number2傳遞給addNumbers()函數(shù)。 這些參數(shù)稱為實(shí)際參數(shù)(實(shí)參)。

result = addNumbers(number1, number2)

參數(shù)n1和n2接受傳遞的參數(shù)(在函數(shù)定義中)。這些參數(shù)稱為形式參數(shù)(或形參)。

將參數(shù)傳遞給Kotlin中的函數(shù)

在Kotlin中,參數(shù)之間用逗號(hào)分隔。同樣,形式參數(shù)的類(lèi)型必須顯式鍵入。

注意,實(shí)際參數(shù)和形式參數(shù)的數(shù)據(jù)類(lèi)型應(yīng)該匹配,即,第一個(gè)實(shí)際參數(shù)的數(shù)據(jù)類(lèi)型應(yīng)該與第一個(gè)形式參數(shù)的類(lèi)型匹配。同樣,第二個(gè)實(shí)際參數(shù)的類(lèi)型必須與第二個(gè)形式參數(shù)的類(lèi)型相匹配,依此類(lèi)推。

這里,

return sumInteger

是return語(yǔ)句。此代碼終止addNumbers()函數(shù),程序控制跳至main()函數(shù)。

在程序中,sumInteger從addNumbers()函數(shù)返回。該值已分配給變量result。

從Kotlin中的函數(shù)返回值

注意,

  • sumInteger和result均為Int類(lèi)型。

  • 函數(shù)的返回類(lèi)型在函數(shù)定義中指定。

    //返回類(lèi)型為 Int
    fun addNumbers(n1: Double, n2: Double): Int {
        ... .. ...
    }

如果函數(shù)不返回任何值,則其返回類(lèi)型為Unit。 如果返回類(lèi)型為 Int,則可以在函數(shù)定義中指定返回類(lèi)型。

示例:使用函數(shù)顯示姓名

fun main(args: Array<String>) {
    println(getName("John", "Doe"))
}

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

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

John Doe

在此,getName()函數(shù)接受兩個(gè)String參數(shù),并返回String。

如果函數(shù)返回單個(gè)表達(dá)式(如上例所示),則可以省略函數(shù)體的花括號(hào){},并在 = 符號(hào)之后指定主體。

在這種情況下,顯式聲明返回類(lèi)型是可選的,因?yàn)榉祷仡?lèi)型可以由編譯器推斷。 在以上示例中,您可以替換

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

等同于:

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

這篇文章是Kotlin中函數(shù)的簡(jiǎn)要介紹。     

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