【发布时间】:2019-06-17 17:00:24
【问题描述】:
在 Scala 中,如果我有一个函数 f(X, Y, Z) 是否可以传递一个代表 (X, Y, Z) 的变量 W,所以我可以使用 f(W) 而不是 f(X ,Y,Z)?如果是这样,如何做到这一点?
【问题讨论】:
在 Scala 中,如果我有一个函数 f(X, Y, Z) 是否可以传递一个代表 (X, Y, Z) 的变量 W,所以我可以使用 f(W) 而不是 f(X ,Y,Z)?如果是这样,如何做到这一点?
【问题讨论】:
如果您的意思是传递一个 tuple 或 case class 而不是三个参数。那么是的,你可以。
首先,如果是函数,你可以:f.tupled(tuple)。
如果是方法,则:(m _).tupled(tuple)。 _(基本一样,只是用eta-expansion把方法变成了函数)。
如果你有一个 case 类 而不是一个元组,你可以把它的一个实例变成一个元组:W.unapply(w).get (其中W 是伴随对象案例类,w 是实例).
【讨论】: