【发布时间】:2015-03-11 10:04:31
【问题描述】:
Scala 的 TypeTags 比较容易比较和捕获——但 Scala 是否提供任何作用于 2 个标签的组合函数?例如,我正在以一种非常笼统的方式处理标签(意思是,类型 T 消失了)。我可以要求 Scala 为我提供最不常见的父级的 TypeTag 吗?这似乎是合乎逻辑的,因为编译器和各种编辑器 IDE 很容易做到这一点并显示共同的父级。示例:
Class A
Class B extends A
class C extends A
val tagB:TypeTag[_] = implicitly[TypeTag[B]]
val tagC:TypeTag[_] = implicitly[TypeTag[C]]
val res:TypeTag[_] = lcmFunction(tagB,tagC) //not a real function name .. example only
res // yields a TypeTag such that res.tpe =:= TypeTag[A].tpe
【问题讨论】:
标签: scala scala-macros