1

関数のアリティを取得する方法はありますか? たとえば、次の関数があるとします。

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

のアリティを取得するにはどうすればよいfuncですか?

4

1 に答える 1

3

Iがタプルの場合、productArityから継承されたメソッドを呼び出すことができますProduct

何らかの関数であることがわかっているオブジェクトがある場合はFunctionN、タプルのような共通のスーパータイプがないため、クラスの (有限) セットに対してチェックする必要があります。現在、Function0最大 まであるようFunction22です。

于 2016-01-31T15:31:06.233 に答える