gpt4 book ai didi

Scala 元组函数组合

转载 作者:行者123 更新时间:2023-12-01 08:49:54 25 4
gpt4 key购买 nike

假设我们有一个带有 Tuple3 结果的 3 个函数:

def foo(a: String, b: String, c: String): (String, String, String) = {
(s"foo_$a", s"foo_$b", s"foo_$c")
}

def bar(a: String, b: String, c: String): (String, String, String) = {
(s"bar_$a", s"bar_$b", s"bar_$c")
}

def buz(a: String, b: String, c: String): (String, String, String) = {
(s"buz_$a", s"buz_$b", s"buz_$c")
}

我可以这样组合它们:

val (a, b, c) = foo("1", "2", "3")
val (d, e, f) = bar(a, b, c)
val (g, h, i) = buz(d, e, f)

但我想要这样的东西:

val (x, y, z) = foo(bar(buz("1", "2", "3")))

我怎样才能做到这一点?

最佳答案

我想这就是你想要的。

foo _ tupled(bar _ tupled buz("1", "2", "3"))
// res0: (String, String, String) = (foo_bar_buz_1,foo_bar_buz_2,foo_bar_buz_3)

首先,使用 eta 扩展(_)将方法转换为 Function。然后你可以调用它的 tupled() 方法,该方法接受一个元组并将其转换为所需的参数。

关于Scala 元组函数组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44942578/

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