将lambda的所有参数传递给函数

问题描述 投票:0回答:1

我有一个将lambda作为参数的函数:

fun blupp(theFun: ((a: Int, b: Int, c: String, d: String) -> Unit)) {
    theFun(1, 2, "three", "four")
}

我实现了一个与lambda原型相匹配的函数:

fun blah(a: Int, b: Int, c: String, d: String) {
    println("a=$a, b=$b, c=$c, d=$d")
}

我可以像这样将blah传递给blupp

fun main() {
    blupp { a, b, c, d -> blah(a, b, c, d) }
}

是否可以将blah传递给blupp而不必重新声明所有参数?我正在寻找类似这样的结构:

blupp { blah(it) } // doesn't compile
blupp { blah }     // doesn't compile
blupp(blah)        // doesn't compile

N.B .:我当然可以只将blah内联到呼叫中,但这不是我想要的,因为我也从其他地方呼叫了blah

kotlin lambda arguments simplify
1个回答
1
投票

您要使用函数引用:

© www.soinside.com 2019 - 2024. All rights reserved.