gpt4 book ai didi

kotlin - 如何将 lambdas 链接到 Kotlin 中的结果 lambda?

转载 作者:行者123 更新时间:2023-12-04 11:58:19 24 4
gpt4 key购买 nike

... 或等效于 java.util.Function.andThen()在 Java 中

Function<String, String> add1 = string -> string + "1";
Function<String, String> add2 = string -> string + "2";
Function<String, Strint> add12 = add1.andThen(add2);
add12.apply("")返回 "12"我将如何在 Kotlin 中编写它?
val add1 = { string:String -> string + "1" }
val add2 = { string:String -> string + "2" }
val add12 = ?

最佳答案

您正在寻找的功能称为函数组合。据我所知,它不是 Kotlin 内置的(希望对此进行更正)。但是写成扩展函数很容易。

infix fun<A, B, C> ((B) -> C).compose(that: (A) -> B): (A) -> C =
{ this(that(it)) }
现在我们可以写
val add1 = { string:String -> string + "1" }
val add2 = { string:String -> string + "2" }

println((add2 compose add1)("3")) // Prints "312"
我写 compose使用从右到左的组合,更符合数学函数的工作方式。

关于kotlin - 如何将 lambdas 链接到 Kotlin 中的结果 lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69429771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com