在scala中获取函数arity

时间:2016-01-31 08:10:21

标签: scala function arity

有没有办法检索函数的arity?例如,给定以下功能:

def moop[I,O](func: I => O) = {
  val arity = I.???
  ???
}

我如何得到func的遗产?

1 个答案:

答案 0 :(得分:3)

如果I是一个元组,您可以在其上调用继承自ProductproductArity方法。

如果你有一个你只知道它是某种函数的对象,你必须检查(有限的)FunctionN类的集合,因为没有像元组那样的常见超类型。看起来我们目前Function0最多Function22