用向量替换函数的参数

时间:2019-06-17 17:00:24

标签: scala argument-unpacking

在Scala中,如果我有一个函数f(X,Y,Z),可以传递一个表示(X,Y,Z)的变量W,这样我可以使用f(W)代替f(X ,Y,Z)?如果是这样,怎么办?

1 个答案:

答案 0 :(得分:3)

如果您要传递元组案例类,而不是三个参数。然后,可以。

首先,如果它是函数,则可以:f.tupled(tuple)
如果是方法,则:(m _).tupled(tuple)。 _(基本上是相同的,但是使用eta扩展将方法转换为函数)。

如果您使用的是案例类而不是元组,则可以使用以下示例将其实例转换为元组:W.unapply(w).get (其中W是case类的伴随对象,而w是实例)