在Scala中,如果我有一个函数f(X,Y,Z),可以传递一个表示(X,Y,Z)的变量W,这样我可以使用f(W)代替f(X ,Y,Z)?如果是这样,怎么办?
答案 0 :(得分:3)
如果您要传递元组或案例类,而不是三个参数。然后,可以。
首先,如果它是函数,则可以:f.tupled(tuple)
。
如果是方法,则:(m _).tupled(tuple)
。 _(基本上是相同的,但是使用eta扩展将方法转换为函数)。
如果您使用的是案例类而不是元组,则可以使用以下示例将其实例转换为元组:W.unapply(w).get
(其中W
是case类的伴随对象,而w
是实例)。