在scala中获取函数arity
Get function arity in scala
有没有办法检索函数的元数?例如,给定以下函数:
def moop[I,O](func: I => O) = {
val arity = I.???
???
}
如何获得 func
的元数?
如果I
是一个元组,你可以调用继承自Product
的productArity
方法。
如果你有一个你只知道它是某种函数的对象,你将不得不检查 FunctionN
类 的(有限)集合,因为没有共同的超类型至于元组。看起来我们目前有 Function0
最多 Function22
。
有没有办法检索函数的元数?例如,给定以下函数:
def moop[I,O](func: I => O) = {
val arity = I.???
???
}
如何获得 func
的元数?
如果I
是一个元组,你可以调用继承自Product
的productArity
方法。
如果你有一个你只知道它是某种函数的对象,你将不得不检查 FunctionN
类 的(有限)集合,因为没有共同的超类型至于元组。看起来我们目前有 Function0
最多 Function22
。