在scala中获取函数arity

Get function arity in scala

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

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

如何获得 func 的元数?

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

如果你有一个你只知道它是某种函数的对象,你将不得不检查 FunctionN 类 的(有限)集合,因为没有共同的超类型至于元组。看起来我们目前有 Function0 最多 Function22