簡體   English   中英

如何在Scala中按類型區分大小寫?

[英]How does the case by type work in scala?

我知道案例類,模式匹配,未應用和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

收集方法接受PartialFunction[Universe.Symbol, B]我無法找到unapply的方法MethodSymbol而且它也性狀不是的情況下的類,所以在女巫代碼編譯變換

{ case m: MethodSymbol => m }

因為MethodSymbol不是通用類型,所以匹配

case m: MethodSymbol => m

基本上等於

case m if m.isInstanceOf[MethodSymbol] => m

絕對沒有任何魔法在這里,並且unapply機器是沒有關系的這樣的匹配在所有。 即使在Java中,同樣的事情也可以輕松完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM