0

ケース クラス、パターン マッチング、unapply、PartialFunction については知っていますが、以下のマクロ スニペットについては混乱しています。

val declarations = weakTypeOf[T].declarations
val methods = declarations.collect { case m: MethodSymbol => m }

MemberScope の Scaladoc http://www.scala-lang.org/api/2.10.4/#scala.reflect.api.Scopes $MemberScope

Collect メソッドは、メソッドがPartialFunction[Universe.Symbol, B] 見つからないことを受け入れます。また、それはケース クラスではなくトレイトであるため、ウィッチ コード コンパイラでは変換が行われます。unapplyMethodSymbol

{ case m: MethodSymbol => m }
4

1 に答える 1