Kotlin高阶函数分解

2022-09-08  本文已影响0人  小城哇哇

今天我们讨论的是 Kotlin 中的高阶函数。

背景

如果您是 Android 开发人员,那么您和我一样是 Kotlin 语言的爱好者。Kotlin 是一种现代编程语言,具有许多功能,并且在每个版本中都添加了更多功能。

如果您在 Android 开发中使用 Java,那么您就知道 Kotlin 语言的重要性,并且非常了解它丰富的库和功能。 高阶函数是其他 Kotlin 特性中的特性之一,我发誓你曾经在你的 android 之旅中使用过它,并且对它了解一点。如果不是这样,这个博客是专门为你准备的。

高阶函数:

在简单的单词中,高阶函数是那些接受函数作为参数或返回函数或两者兼而有之的函数。

在参数中传递函数

我们可以通过两种方式将 lambda 表达式作为参数传递给高阶函数。

  1. 返回 Unit 的 Lambda 表达式
  2. 返回任何值的 Lambda 表达式,如 Int、String 等。

请参阅示例:

// lambda expression
val hashnode = {
    println("Hashnode: Developer Blog Plateform.") 
}
// higher-order function
fun higherfunc( lmbd: () -> Unit ) {             // accepting lambda as parameter
    lmbd.invoke()                              //invokes lambda expression
}
fun main() {
    higherfunc(hashnode)
}

您在上面的示例中看到,我们将 lambda 作为参数传递给函数。

我们可以在高阶函数中传递普通函数而不是 lambda 表达式。

从另一个函数返回一个函数:

正如高阶函数的定义一样,我们可以从 Kotlin 中的另一个函数返回一个函数。让我们看第一个例子。

fun sumOfTwoNum(a: Int, b: Int): Int{
    return a+b
}
//higher-order function declaration
fun higherfunc() : ((Int,Int)-> Int){
    return ::sumOfTwoNum
}
fun main() {
     // invoke function and store the returned function into a variable
    val summation = higherfunc() 
    // invokes the sumOfTwoNum() function by passing arguments
    val result = summation(8,12)  
    println("The summation of two numbers is: $result")
}

如您所见,我们定义了一个函数 sumOfTwoNum() 函数,它接受两个参数,它的返回类型是整数。之后我们定义了一个高阶函数,它接受两个整数参数,返回类型与 sumOfTwoNum() 函数相同。

最后我们调用 sumOfTwoNum() ,只需在 Higherfunc(8,12) 中传递两个 int 值,然后返回结果中的总和。

结论

这就是高阶函数。easy-peasy!同样,高阶函数是那些在参数或返回函数中接受函数或两者都接受的函数。

为了帮助哪些想要入门或深入的学习 Kotlin小伙伴 ,我近日整理发布一份《高级Kotlin强化实战学习手册(附Demo)》供Android开发者进阶学习 Kotlin,内容涵盖 Kotlin 入门教程、Kotlin实战避坑指南、Kotlin Jetpack 实战三大模块。

《高级Kotlin强化实战学习手册(附Demo)》点击这里

第一章 Kotlin入门教程

第二章 Kotlin 实战避坑指南

第三章 项目实战《Kotlin Jetpack 实战》

上一篇 下一篇

猜你喜欢

热点阅读