当前位置: 首页 > 知识库问答 >
问题:

如何将函数中的参数作为参数传递给另一个参数,并在kotlin中创建属函数

慕容博涛
2023-03-14

我想在函数中传递参数,但它给出了一个错误,这个语法保留供将来使用;要调用引用,请将其括在括号中:(foo::bar)(args)。此外,我还想制作一个genric runFunction,它可以接受任何参数,例如Int、String等。在这个示例代码中,我将sumInt(2)发送给runFunction,我还想发送concatatestring(“John”)。任何人都知道如何做到这一点。我试着搜索Kotlin:如何将一个函数作为参数传递给另一个?

在更新anwser并使用lamba之后

fun main(vararg args: String) {
    runFunction { sumInt(2) }
    runFunction { concatenateString("John") }
}

fun <T: Any> runFunction(action: () -> (T)) {
    println(action())
}

private fun sumInt(a: Int): Int {
    return a + 2
}

private fun concatenateString(a: String): String {
    return "$a welcome"
}

共有1个答案

晋安国
2023-03-14

如果要向函数传递参数,需要将函数调用包装在函数中。lambda函数是最简洁的方法。

fun main(vararg args: String) {
    runFunction { sumInt(2) }
}
 类似资料:
  • 我试图学习功能性Kotlin,并编写了以下测试代码: 在REPL中,我可以成功调用“findBorrowerX”: 但是我如何拨打“findBorrowerX2”的电话: 并将迭代的借用器x传递给getName?? 这看起来有关联,但我不确定: Kotlin:如何将一个函数作为参数传递给另一个? 提前感谢您对此的帮助! 编辑: 下面是我想做的等效Scala代码: 也许这在科特林是不可能的?

  • 问题内容: 我尝试了以下失败的尝试: 在函数a中,我可以使用arguments关键字来访问参数数组,而在函数b中,这些参数将丢失。有没有办法像我尝试的那样将参数传递给另一个javascript函数? 问题答案: 用于对in函数具有相同的访问权,如下所示:

  • 问题内容: 我是ajax和回调函数的新手,如果我弄错了所有概念,请原谅我。 问题: 我可以将 回调 函数作为参数发送给将执行该回调的另一个函数吗? 问题答案: 对。函数引用与任何其他对象引用一样,您可以将它们传递到您的内心。 这是一个更具体的示例: 您还可以传递以下参数:

  • 问题内容: 我想将传递给function()的所有参数作为参数传递给内部的另一个function(), 这可以在被调用过程中完成并将它们传递给,但是还有另一种方法吗? 本来 但是如果我的func1签名是 我如何将它们全部发送到func2,而不使用 有没有一种方法像在javascript中? 问题答案: 显式比隐式更好, 但是如果您真的不想键入一些字符,请执行以下操作: 都是局部变量,因此您不能在调

  • 问题内容: 我已经熟悉Android框架和Java,并希望创建一个通用的“ NetworkHelper”类,该类可以处理大多数联网代码,使我能够从中调用网页。 我遵循了来自developer.android.com的这篇文章来创建我的网络类:http : //developer.android.com/training/basics/network- ops/connecting.html 码:

  • 问题内容: 在Java中,如何将一个函数作为另一个函数的参数传递? 问题答案: Java 8及以上 如果你的类或接口只有一个抽象方法(有时称为SAM type),则使用Java 8+ lambda表达式,例如: 然后可以在使用MyInterface的任何地方替换lambda表达式: 例如,你可以非常快速地创建一个新线程: 并使用方法引用语法使其更加清晰: 如果没有 lambda表达式,则最后两个示