这个问题在这里已经有了答案:
scala tuple unpacking
(5 个回答)
6年前关闭。
我想知道什么是最好的方法来做到这一点。
val foo = Some("a")
val bar = Some(2)
def baz(a: String, b: Int) = if((b % 2) == 0) Some(a+","+b) else None
(x zip y) flatMap baz //does not compile of course
(x zip y) flatMap { x => baz(x._1, x._2) } //ugly
我认为 Odersky 等人。在这个例子中,他们还有另一个技巧来减少噪音。
因此,问题是假设您不允许更改
baz
的实现,如何解决这里的困惑问题。 (例如 def baz(a: (String Int))
)。
最佳答案
这个问题已经在这里回答:scala tuple unpacking
首先通过偏应用使foo成为一个函数,然后调用tupled
使用您的参数列表:
(foo _).tupled(myTuple)
关于scala - 使用元组作为参数列表调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322436/