首页 > 解决方案 > 用向量替换函数的参数

问题描述

在 Scala 中,如果我有一个函数 f(X, Y, Z) 是否可以传递一个代表 (X, Y, Z) 的变量 W,所以我可以使用 f(W) 而不是 f(X,Y, Z)? 如果是这样,如何做到这一点?

标签: scalaargument-unpacking

解决方案


如果您的意思是传递一个元组案例类而不是三个参数。那么是的,你可以。

首先,如果它是一个函数,你可以f.tupled(tuple)
如果它是一种方法,那么:(m _).tupled(tuple)。_(基本一样,只是用eta-expansion把方法变成了函数)。

如果你有一个案例类而不是一个元组,你可以将它的一个实例变成一个元组:(W.unapply(w).get 其中W是案例类的伴随对象,并且w是实例)


推荐阅读